Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Библиотека для работы с JSON для iOS

#xcode #objective_c #ios #json #библиотеки


Нашел следующие библиотеки:

SBJSON
JSON kit
Touch JSON (как я понял устарел и не поддерживается)

хочется поинтересоваться что пользуется бОльшим успехом и какие особенности этих
библиотек. И возможно какая лучше.     


Ответы

Ответ 1



Советую выбирать Вам между NSJSONSerialization и JSONKit. Про разницу между ними ничего особенного не скажу, обе библиотеки делают свое дело. Что касается их производительности, то разница у них незначительная (JSONKit быстрее, но не намного) и к тому же редко когда вы столкнетесь с тем, что именно производительность разбора JSON будет для вас bottleneck. Смотрите на эту тему очень поучительный комментарий автора библиотеки RestKit. Единственный довод за NSJSONSerialization - это отсутствие лишней зависимости от сторонней библиотеки (я имею в виду зависимость от JSONKit в случае, если вы выберете её), хотя, если вы пользуетесь Cocoa pods, этот довод становится совсем еле заметным. Довод против NSJSONSerialization и в пользу JSONKit - это что JSONKit удобнее в использовании - я пользуюсь JSONKit главным образом из-за того, что она добавляет удобные категории к классам NSArray, NSDictionary, NSString. И вместо того, чтобы писать каждый раз заново строки NSJSONSerialization типа NSJSONSerialization *yourResponse = [NSJSONSerialization JSONObjectWithData:yourData options:0 error:&jsonError]; NSArray *yourObjects = (NSArray *)yourResponse; При использовании JSONKit Вам достаточно будет написать NSArray *yourObjects = yourData.objectFromJSONData; На мой взгляд это удобно и незаметно. Настолько незаметно, что я даже не сразу вспомнил какой JSON-библиотекой я пользуюсь, когда прочитал Ваш вопрос. ОБНОВЛЕНО ПОЗЖЕ Мой взгляд на этот вопрос изменился с тех пор, как я отвечал на него полтора месяца назад. Сейчас я бы советовал использовать исключительно родной NSJSONSerialization. Вот несколько причин: JSONKit, похоже, накрепко заброшен автором. Xcode 5 выдаёт очень много Warning'ов по поводу JSONKit, как он есть, и автор никак не реагирует на соответствующие репорты (если интересно, см. многочисленные issues вроде #121 в его репозитории на Github). Вот эти Тесты производительности на SO показывают, что NSJSONSerialization работает быстрее или как минимум наравне с JSONKit (начиная с iOS 6). Если вы используете для работы с сетью AFNetworking, то он за кулисами разбирает JSON с помощью NSJSONSerialization, и вам вообще не нужно думать о том, какой JSON парсер выбирать и использовать, так как за вас всё уже сделано и вы получаете готовые свои ответы уже завернутые из JSON в NSDictionary/NSArray. Кратко: используйте NSJSONSerialization!

Ответ 2



Мне нравится NSJSONSerialization, вполне самодостаточен, и да чутка не удобен. Очень нравится KISSXML к нему есть категории расширяющие работу с JSON и XML. ну и я за JSONKit Сравнение

Комментариев нет:

Отправить комментарий