Рубрики
Без рубрики

JSON в Java

Узнайте, как начать работать с данными JSON в Java.

Автор оригинала: Eugen Paraschiv.

1. Обзор

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

Это руководство должно облегчить этот выбор и дать вам четкое представление об экосистеме прямо сейчас. Мы обсудим наиболее распространенные библиотеки обработки JSON в Java:

  • Джексон
  • Gson
  • json-io
  • Генсон

Мы следуем простой структуре для каждой библиотеки – сначала некоторые полезные ресурсы для начала работы (как здесь, на Baeldung, так и снаружи). Затем мы рассмотрим пример базового кода , просто чтобы посмотреть, как на самом деле выглядит работа с библиотекой.

2. Популярность и базовая статистика

Во-первых, давайте начнем с некоторой статистики в качестве прокси для популярности каждой библиотеки:

2.1. Джексон

2.2. Gson

  • Maven Использование: 1588
  • Github Звезды: 2079
  • Вилки Github: 471

2.3. json-io

  • Maven Использование: 11
  • Github Звезды: 129
  • Вилки Github: 40

2.4. Генсон

  • Maven Использование: 8
  • Github Звезды: 67
  • Вилки Github: 15

3. Джексон

Далее, давайте посмотрим на самый популярный из них – Джексон. Jackson-это многоцелевая библиотека Java для обработки данных JSON.

3.1. Полезные ресурсы

Вот некоторые официальные ресурсы для библиотеки:

О Баельдунге:

  • Учебник Джексона
  • Дата Джексона
  • Взгляды Джексона ДЖСОНА
  • Руководство по аннотациям Джексона
  • Исключения Джексона – Проблемы и решения
  • Джексон – Решите, Какие Поля Будут Сериализованы/Десериализованы
  • Джексон – Двунаправленные Отношения
  • Джексон – Пользовательский сериализатор
  • Джексон – Пользовательский десериализатор

Другие Интересные Статьи:

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

Другие Интересные Статьи:

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. Полезные ресурсы

Вот некоторые официальные ресурсы для библиотеки:

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.