Автор оригинала: Eugen Paraschiv.
1. Обзор
Работа с данными JSON в Java может быть простой , но – как и большинство других приложений в Java – существует множество опций и библиотек, из которых мы можем выбирать.
Это руководство должно облегчить этот выбор и дать вам четкое представление об экосистеме прямо сейчас. Мы обсудим наиболее распространенные библиотеки обработки JSON в Java:
- Джексон
- Gson
- json-io
- Генсон
Мы следуем простой структуре для каждой библиотеки – сначала некоторые полезные ресурсы для начала работы (как здесь, на Baeldung, так и снаружи). Затем мы рассмотрим пример базового кода , просто чтобы посмотреть, как на самом деле выглядит работа с библиотекой.
2. Популярность и базовая статистика
Во-первых, давайте начнем с некоторой статистики в качестве прокси для популярности каждой библиотеки:
2.1. Джексон
- Использование Maven: привязка данных ( 2362 ), ядро ( 1377 )
- Github Звезды: 1457
- Вилки Github: 585
2.2. Gson
2.3. json-io
2.4. Генсон
3. Джексон
Далее, давайте посмотрим на самый популярный из них – Джексон. Jackson-это многоцелевая библиотека Java для обработки данных JSON.
3.1. Полезные ресурсы
Вот некоторые официальные ресурсы для библиотеки:
О Баельдунге:
- Учебник Джексона
- Дата Джексона
- Взгляды Джексона ДЖСОНА
- Руководство по аннотациям Джексона
- Исключения Джексона – Проблемы и решения
- Джексон – Решите, Какие Поля Будут Сериализованы/Десериализованы
- Джексон – Двунаправленные Отношения
- Джексон – Пользовательский сериализатор
- Джексон – Пользовательский десериализатор
Другие Интересные Статьи:
- Джексон JSON API обработки в Java Пример Учебника
- Джексон – ObjectMapper
- Джексон 2 – Преобразование объекта Java в/из JSON
3.2. Зависимость Maven
Чтобы использовать библиотеку – вот зависимость Maven для добавления в ваш pom.xml :
com.fasterxml.jackson.core jackson-databind ${jackson.version}
Обратите внимание, что последняя версия Джексона прямо сейчас 2.6.3 .
3.3. Простой пример с Джексоном
Теперь давайте посмотрим, как использовать Джексона в простом примере:
@Test public void whenSerializeAndDeserializeUsingJackson_thenCorrect() throws IOException{ Foo foo = new Foo(1,"first"); ObjectMapper mapper = new ObjectMapper(); String jsonStr = mapper.writeValueAsString(foo); Foo result = mapper.readValue(jsonStr, Foo.class); assertEquals(foo.getId(),result.getId()); }
Обратите внимание, что:
- ObjectMapper.writeValueAsString() используется для сериализации объекта в строку JSON.
- ObjectMapper.readValue() используется для десериализации строки JSON в объект Java.
- Пример вывода JSON:
{ "id":1, "name":"first" }
4. Gson
Gson-это следующая библиотека Java JSON, которую мы будем рассматривать.
4.1. Полезные ресурсы
Вот некоторые официальные ресурсы для библиотеки:
О Баельдунге:
- Поваренная книга сериализации Gson
- Кулинарная книга десериализации Gson
Другие Интересные Статьи:
- Стратегия исключения Gson
- Пользовательский Сериализатор/Десериализатор Gson
- Java Gson + JSON Учебник с примерами
4.2. Зависимость Maven
com.google.code.gson gson ${gson.version}
Обратите внимание, что последняя версия песни прямо сейчас 2.4 .
4.3. Простой пример с Gson
Вот простой пример, объясняющий, как использовать Gson для сериализации/десериализации JSON:
@Test public void whenSerializeAndDeserializeUsingGson_thenCorrect(){ Gson gson = new Gson(); Foo foo = new Foo(1,"first"); String jsonStr = gson.toJson(foo); Foo result = gson.fromJson(jsonStr, Foo.class); assertEquals(foo.getId(),result.getId()); }
Обратите внимание, что:
- Gson.toJSON() используется для сериализации объекта в JSON
- Gson.FromJSON() используется для десериализации JSON в объект Java
5. Json-io
Json-io-это простая библиотека Java для сериализации/десериализации JSON.
5.1. Полезные ресурсы
Вот некоторые официальные ресурсы для библиотеки:
5.2. Зависимость Maven
com.cedarsoftware json-io ${json-io.version}
Обратите внимание, что последняя версия json-io прямо сейчас 4.1.9 .
5.3. Простой пример с json-io
Теперь давайте рассмотрим простой пример использования json-io:
@Test public void whenSerializeAndDeserializeUsingJsonio_thenCorrect(){ Foo foo = new Foo(1,"first"); String jsonStr = JsonWriter.objectToJson(foo); Foo result = (Foo) JsonReader.jsonToJava(jsonStr); assertEquals(foo.getId(),result.getId()); }
Обратите внимание, что:
- JsonWriter.object toJSON() используется для сериализации объекта в JSON.
- JsonReader.json To Java() используется для десериализации Json в объект Java.
- Пример вывода JSON:
{ "@type":"org.baeldung.Foo", "id":1, "name":"first" }
6. Генсон
Genson-это библиотека преобразования Java и Scala в JSON, обеспечивающая полную привязку и потоковую передачу данных.
6.1. Полезные ресурсы
Вот некоторые официальные ресурсы для библиотеки:
- Официальный сайт Genson
- Генсон на Github
- Руководство пользователя Genson
- Формат Genson JSON для байтовых массивов
6.2. Зависимость Maven
com.owlike genson ${genson.version}
Обратите внимание, что последняя версия Gencon прямо сейчас – 1.3.
6.3. Простой пример с Генсоном
Вот простой пример работы с библиотекой:
@Test public void whenSerializeAndDeserializeUsingGenson_thenCorrect(){ Genson genson = new Genson(); Foo foo = new Foo(1,"first"); String jsonStr = genson.serialize(foo); Foo result = genson.deserialize(jsonStr, Foo.class); assertEquals(foo.getId(),result.getId()); }
Обратите внимание, что:
- Genson.serialize() используется для сериализации объекта в JSON
- Genson.deserialize() используется для десериализации JSON в объект Java
7. Заключение
В этой краткой обзорной статье мы узнали о наиболее распространенных библиотеках обработки JSON в Java.