Перейти к контенту

Как конвертировать строку String в объект JSON в Java?

В настоящее время очень распространено получать JSON String от веб-службы Java вместо XML, но, к сожалению, JDK еще не поддерживает преобразование между JSON String в объект JSON.

Сохранение JSON в качестве String не всегда является хорошим вариантом, поскольку вы не можете легко с ним работать, вам нужно преобразовать его в объект JSON, прежде чем делать что-либо еще, например. получить любое поле или установить разные значения.

 

Существует много библиотек с открытым исходным кодом, которые позволяют создавать JSON-объекты из форматированной строки JSON, например, Gson от Google, Jackson или просто JSON.

В этом руководстве вы узнаете, как конвертировать и преобразовать строку String в JsonObject, используя 3 основные библиотеки.

Будем использовать следующую строку JSON для примера:

jsonString = {
  "name" : "Ronaldo",
  "sport" : "soccer",
  "age" : 25,
  "id" : 121,
  "lastScores" : [ 2, 1, 3, 5, 0, 0, 1, 1 ]
}

Это просто, который имеет 5 атрибутов, два из которых являются String, а два других являются числовыми. Одним из атрибутов lastScore является массив JSON.

Преобразование строки в объект JSON с использованием Gson

Gson — это библиотека с открытым исходным кодом для работы с JSON в программах Java. Он создан Google, который также стоит за Guava, библиотекой общего назначения для Java-программистов.

Вы можете конвертировать JSON String в объект Java всего за 2 строки, используя Gson, как показано ниже:

Gson g = new Gson(); 
Player p = g.fromJson(jsonString, Player.class)

Или преобразовать Java-объект в JSON с помощью метода toJson (), как показано ниже:

String str = g.toJson(p);

Если вы не очень хорошо знакомы с самим форматом JSON, я бы посоветовал прочитать «Beginning JSON» от Ben Smit, чтобы узнать больше.

Конвертирование JSON в объект Java

JSON-Simple — это еще одна библиотека с открытым исходным кодом, которая поддерживает синтаксический анализ и форматирование JSON. У нее небольшой размер, который идеально подходит для сред с ограниченной памятью, таких как J2ME и Android.

JSONParser parser = new JSONParser(); 
JSONObject json = (JSONObject) parser.parse(stringToParse);

Полезной особенностью json-simple является то, что она также совместима с JDK 1.2, что означает, что вы можете использовать ее в устаревшем проекте, который еще не в Java 5.
конвертировать String to JSON object в Java

Библиотека Jackson

Jackson, я думаю, самая популярная библиотека синтаксического анализа JSON в мире Java. Она быстрая, многофункциональная и поддерживает потоковую передачу, что отлично подходит для анализа больших выходных данных JSON из веб-сервисов.

С помощью одной строки, вы можете преобразовать строку JSON, представляющую футболиста, в класс Java, представляющий игрока:

Player ronaldo = new ObjectMapper().readValue(jsonString, Player.class);

Один из недостатков Jackson заключается в том, что для него требуется JDK 1.5, поэтому, если вы застряли в более ранней версии Java, он может там не работать.

Jackson не поддерживает J2ME, но одно из главных преимуществ использования заключается в том, что он поддерживает потоковую передачу, которую можно использовать для анализа большого ответа JSON без полной загрузки его в память.

Вы можете использовать любую из библиотек: json-simple, Gson или Jackson для анализа JSON, полученных от веб-сервисов, каждое из которых имеет свои преимущества.

  1. Json-simple имеет небольшой объем памяти и он вполне подходит для J2ME и Android.
  2. Jackson обладает богатым набором функций, поэтому лучше применять для большого проекта.
  3. Gson находится между ними и применим для общего назначения в программах Java.

Оцени статью

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим - напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

 

Пока нет комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован.

СайдбарКомментарии (0)