Сравнение JSON Parser для Objective-C (JSON Framework, YAJL, TouchJSON и т.д.)

Насколько я знаю, есть три JSON Parsers для Objective-C, JSON Framework, YAJL и Touch JSON. Тогда эти три будут иметь свои особенности.

Например:
YAJL можно использовать как парсер SAX. JSON Framework имеет относительно долгую историю и широко используется.
Нажмите JSON, чтобы проанализировать NSData вместо NSString.

Кроме того, насколько я проверял, результат сравнения производительности выглядит следующим образом:
[fast] YAJL > JSON Framework > Нажмите JSON [slow].

Если вы знаете плюсы и минусы этих парсеров JSON, не могли бы вы мне сказать?
Наконец, если вы знаете какой-либо другой JSON Parser, скажите, пожалуйста.

Ответ 1

Если вы ищете скорость, посмотрите JSONKit. Он (обычно) намного быстрее, чем уже упоминавшиеся библиотеки JSON, часто на порядок быстрее. И из-за этого "недавно созданный экземпляр объекта" он будет (опять же, обычно) использовать меньше памяти.

Ответ 2

Учитывая сравнение, которое я сделал, самой быстрой библиотекой является JSONKit, за которой следуют NSJSONSerialization (теперь открытый API) и NextiveJSON. SBJSON и TouchJSON немного медленнее, чем предыдущие 3 библиотеки.

Сравнение было выполнено с использованием iPhone 4S с iOS 5.0.1.

Ответ 3

Там также этот парсер:

Я не помню, как я наткнулся на этот, но он выглядел легким и простым, поэтому я подумал, что это соответствует моим потребностям. Событие я разветкило его, чтобы добавить инициализацию из NSData. Поскольку мне нужно было разбирать небольшие ответы, я не заботился о производительности. Было бы интересно узнать, как это работает.

Ответ 4

Я думаю, что JSONKit быстрее, чем YAJL, и YAJL быстрее, чем класс класса JSON и IOS5. Класс NSJSONSerialization намного быстрее. NSJSONSerialization не нужно использовать сторонние API.

Ответ 6

Почему бы не взглянуть на тесты akosma на парсерах, где он сравнивает разные виды парсеров. Если один парсер отсутствует, вы можете также добавить его в тесты, так как его код является открытым исходным кодом.

iPhoneWebServicesClient

Ответ 7

Если вы ищете сериализатор из NSObject для JSON и наоборот, вы можете проверить OBJC JSONSerializer