2010-08-25 2 views

ответ

72

Начиная с iOS5 JSON поддерживается, не требуется сторонних фреймворков. Это поддерживается NSJSONSerialization Class!

+1

Вы бы посоветовали использовать родные классы или JSONKit - я слышал причины производительности для того, почему вы использовали бы неродные классы, и мне понравилась бы некоторая обратная связь – Doug

+0

@Doug в соответствии с этим: http://www.bonto.ch/ blog/2011/12/08/json-libraries-for-ios-compare-updated/JSONKit работает быстрее, но если вы не работаете с огромным количеством JSON, я не думаю, что это будет иметь большое значение. – ThomasW

+0

NSJSONSerialization имеет ошибку только в iOS 5 (я никогда не нашел ее в 6), и иногда выдает ошибку на отлично действующем JSON. Ошибка: Error Domain = NSCocoaErrorDomain Code = 3840 «Операция не может быть выполнена. (Ошибка Cocoa 3840.)» (Дублирующий ключ для объекта вокруг символа 126.) Я не знаю, что полностью вызывает ошибку, поскольку я могу Всегда воспроизводите его. – LightningStryk

36

Обновленный ответ для прошивкой 5: поддержка

JSON теперь родным для прошивкой с NSJSONSerialization, но с точки зрения производительности, он бледнеет по сравнению к JSONKit, как заявил Джон Englehart в JSONKit README:

UPDATE: (2011/12/18) ориентиры ниже, были выполнены до яблок NSJSONSerialization было доступно (как в Mac OS X 10.7 и прошивкой 5). Очевидный вопрос: что быстрее, NSJSONSerialization или JSONKit? Согласно этому сайту, JSONKit работает быстрее, чем NSJSONSerialization. Некоторые быстрые вычисления «задней части конверта» с использованием указанных номеров, JSONKit, по-видимому, примерно на 25-40% быстрее, чем NSJSONSerialization, что довольно важно.

enter image description here

Вот блог, который углубляется в более конкретные критерии: JSON Libraries for iOS Comparison

+10

Для тех, кто находит этот вопрос через Google или какой-либо другой аналогичный источник: ответ boz ниже заменяет это. Поддержка JSON теперь является родной для iOS. – Tommy

+0

Для тех, кто надеется использовать JSONKit с вашим приложением, которое использует сборку мусора, основанной на подсчете ссылок на iOS, вам здесь не повезло (другими словами, документация JSONKit позволяет указать, что поведение JSONKit при использовании с Приложение ARC не определено). Но, если вы используете ARC, вы, вероятно, все равно не заботитесь о памяти и производительности :-) – umassthrower

+2

@umassthrower Я уверен, что вы знаете флаг '-fno-objc-arc' ... –

0

Что касается JSONKit тестов, на текущий момент и версии iOS это не так быстро. После создания тестового приложения для тестирования скорость NSJSONSerialization работает быстрее, но не так быстро, как пользовательская реализация OKJSONParser

Смежные вопросы