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

Android JSONObject против GSON

Я не могу понять разницу между JSONObject и GSON для разбора строк JSON в Android.

Может кто-нибудь объяснить?

4b9b3361

Ответ 1

GSON может использовать определение объекта для непосредственного создания объекта требуемого типа. JSONObject необходимо разобрать вручную. Это основное отличие.

Ответ 2

как говорили другие, GSON сделать преобразование JSON в POJO намного проще, НО, последняя версия GSON (как я пишу, 2.2.2) имеет серьезные проблемы с последним Android API 17 (Android 4.2).

Проверьте это для информации: http://code.google.com/p/google-gson/issues/detail?id=496

Если вы сейчас делаете новый проект и хотите, чтобы он был совместим с Android 4.2, используйте более старый GSON (1.7.1 отлично работает с Android 4.2, но медленнее) или найдите другое решение.

Ответ 3

То, что говорит Тим, также верно,

Gson - лучший API для разбора JSON на Android. Он очень маленький бинарный размер (до 200 KiB), обеспечивает быструю привязку данных и имеет простой простой в использовании API. Android-встроенные библиотеки JSON также хороши. Вы должны использовать их, если вы не делаете много JSON и не нуждаетесь привязки данных.

Ответ 4

На Android есть два API JSON:

org.json - простой API-интерфейс в стиле дерева. Самая большая слабость в том, что она требует, чтобы вы загрузили весь документ JSON в строку перед вами может разобрать его. Для больших документов JSON это может быть неэффективным. http://developer.android.com/reference/org/json/package-summary.html

android.util.JsonReader/JsonWriter - это низкоуровневые потоковые API. Они эффективны, но не делают привязки данных, поэтому вам нужно написать некоторые шаблонный код для их использования. Они доступны только в Android 3+. Для более ранних версий Android один и тот же API доступен автономно в пакете Gson stream. http://developer.android.com/reference/android/util/JsonReader.html

Gson JsonReader и JsonWriter получены из Android JsonReader и JsonWriter. Я буквально скопировал и вставил их с Android на Gson, и попытайтесь синхронизировать их, когда я оптимизирую один или Другие.