org.json.JSONObject и библиотека Gson JsonObject

Каковы различия между этими двумя классами?

Если кто-то использует библиотеку Gson, предпочтительнее ли использовать com.google.json.JsonObject org.json.JSONObject?

Кто-нибудь может перечислить плюсы и минусы этих 2 вариантов?

Ответ 1

Многие реализации JSON доступны на рынке, и большинство из них - с открытым исходным кодом. Каждый из них имеет определенные преимущества и недостатки.

  • Google GSON
  • Джексон
  • org.json и т.д.

Google GSON щелкните для официальных документов

  • Предоставлять простые методы toJson() и fromJson() для преобразования объектов Java в JSON и наоборот
  • Разрешить создание ранее немодифицируемых объектов для преобразования в JSON и из него
  • Расширенная поддержка Java Generics
  • Разрешить пользовательские представления для объектов
  • Поддержка произвольно сложных объектов (с глубокими иерархиями наследования и широким использованием родовых типов)

Джексон нажмите для официальных документов

  • Streaming API или инкрементный синтаксический анализ/генерация: считывает и записывает содержимое JSON в виде дискретных событий
  • Древовидная модель: предоставляет изменяемое дерево в виде дерева документа JSON.
  • Связывание данных: конвертирует JSON в POJO и из него.

Некоторые сравнительные блоги нажмите здесь blogs1, blog2

Я лично сделал тест для сериализации и десериализации с использованием GSON против Jackson vs Simple JSON

  • Очень маленький объект: Google gson работает быстрее, чем Jackson и Simple JSON
  • Большие объекты: Google gson работает быстрее, чем Jackson и Simple JSON

Ответ 2

Ниже перечислены основные отличия:

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

2) org.json - простой API-интерфейс в стиле дерева. Самая большая слабость заключается в том, что он требует, чтобы вы загрузили весь документ JSON в строку, прежде чем сможете ее проанализировать. Для больших документов JSON это может быть неэффективным.

3) Самой большой слабостью реализации org.json является исключение JSONException. Просто не удобно размещать блок try/catch вокруг всех ваших JSON файлов.

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

5). GSON и Jackson - самые популярные решения для управления данными JSON в Java-мире.