Подтвердить что ты не робот

NSJSONSerialization от NSString

Возможно ли, если у меня есть NSString, и я хочу использовать NSJSONSerialization? Как это сделать?

4b9b3361

Ответ 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

Сообщение в блоге содержит весь необходимый код. Просто скопируйте/вставьте:)

Надеюсь, что это поможет!