Я не могу понять разницу между JSONObject и GSON для разбора строк JSON в Android.
Может кто-нибудь объяснить?
Я не могу понять разницу между JSONObject и GSON для разбора строк JSON в Android.
Может кто-нибудь объяснить?
GSON может использовать определение объекта для непосредственного создания объекта требуемого типа. JSONObject необходимо разобрать вручную. Это основное отличие.
как говорили другие, 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, но медленнее) или найдите другое решение.
То, что говорит Тим, также верно,
Gson - лучший API для разбора JSON на Android. Он очень маленький бинарный размер (до 200 KiB), обеспечивает быструю привязку данных и имеет простой простой в использовании API. Android-встроенные библиотеки JSON также хороши. Вы должны использовать их, если вы не делаете много JSON и не нуждаетесь привязки данных.
На 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, и попытайтесь синхронизировать их, когда я оптимизирую один или Другие.