Сериализация строки JSON SBJSON против NSJSONСериализация против чего-либо еще?

Я получаю эту строку JSON и хочу знать, как сериализовать ее в словарь, чтобы я мог преобразовать ее в управляемый объект.

Я рассмотрел несколько способов (названных в заголовке) и не могу найти самый простой и быстрый вариант. Я хотел бы использовать NSJSONSerialization, но я не уверен, что это сделано для этого?

Код, в который входит строка

NSString *data = [[NSString alloc]initWithData:response encoding:NSUTF8StringEncoding];
        NSLog(@"String %@",data);

Сообщение NSLog

String [{"0":"1","id":"1","1":"re ee","name":"re ee","2":"http:\/\/ree.com\/images\/re.png","backgroundImageUrl":"http:\/\/ree.com\/images\/re.png","3":"http:\/\/ree.com\/images\/re.png","logoImageUrl":"http:\/\/ree.com\/images\/re.png"}]<br />

заранее спасибо


person William Falcon    schedule 09.04.2013    source источник
comment
Оба достаточно твердые. (По правде говоря, у SBJSON больше времени сжигания, но за NSJSONSerialization стоит Apple.) Отчасти это просто связано с тем, что удобнее. С SBJSON вы работаете с NSStrings, а с NSJSONSerialization вы работаете с NSData, плюс несколько незначительных операционных различий. Я бы не заморачивался ни с кем из других.   -  person Hot Licks    schedule 09.04.2013
comment
Итак, я использую AFNetworking, который, по-видимому, использует NSStrings?   -  person William Falcon    schedule 09.04.2013
comment
Что ж, я полагаю, в приведенном выше примере response — это NSData.   -  person Hot Licks    schedule 09.04.2013


Ответы (1)


JSONKit — это то, что вам нужно.

Помимо простоты использования, это быстрее, чем SBJSon, даже быстрее, чем NSJSONSerialization.

Для вашего примера вы можете получить такой массив:

NSArray* arrayFromJson = [data objectFromJSONString];
NSString* id = arrayFromJson[0][@"id"];

Легко, да?

person MasterBeta    schedule 09.04.2013
comment
NSJSONSerialization в порядке. У JSONKit есть потенциальная проблема — из-за использования устаревших функций. Это не намного быстрее, чем NSJSONSerialization, так как синтаксический анализатор Apple стал быстрее. - person CouchDeveloper; 09.04.2013
comment
Может ли кто-нибудь дать какое-либо представление о том, какова скорость синтаксического анализа сейчас? Последнему обновлению Readme.md на GitHub исполнилось 2 года. Интересно, как обстоят дела сейчас. - person Majster; 04.05.2014
comment
NSJSONСериализация полностью - person William Falcon; 06.02.2015