Возможно ли, если у меня есть NSString, и я хочу использовать NSJSONSerialization? Как это сделать?
NSJSONSerialization от NSString
Ответ 1
Сначала вам нужно будет преобразовать NSString
в NSData
, выполнив следующие
NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
то просто используйте метод JSONObjectWithData
, чтобы преобразовать его в JSON
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
Ответ 2
Вам нужно преобразовать NSString
в NSData
, в этот момент вы можете использовать метод +[NSJSONSerialization JSONObjectWithData:options:error:]
.
NSString * jsonString = YOUR_STRING;
NSData * data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError * error = nil;
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if (!json) {
// handle error
}
Ответ 3
Вы можете преобразовать свою строку в NSData, сказав:
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
Затем вы можете использовать его с NSJSONSerialization
. Обратите внимание, однако, что NSJSONSerialization
- только iOS5, поэтому вам может быть лучше использовать библиотеку, такую как TouchJSON или JSONKit, обе из которых позволяют работать со строками в любом случае, сохраняя шаг конвертации в NSData.
Ответ 4
Я написал сообщение в блоге, которое демонстрирует, как обернуть родной класс iOS JSON в общий протокол вместе с реализацией, использующей собственный класс iOS JSON.
Этот подход значительно упрощает использование собственной функциональности и уменьшает количество кода, который вы должны писать. Кроме того, намного проще отключить встроенную реализацию, скажем, JSONKit, если родной окажется недостаточно.
http://danielsaidi.com/blog/2012/07/04/json-in-ios
Сообщение в блоге содержит весь необходимый код. Просто скопируйте/вставьте:)
Надеюсь, что это поможет!