Как красиво выводить JSON в Java с помощью json-simple

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для форматирования JSON с отступами в Java используйте библиотеку Jackson, используя ObjectMapper:

Java
Скопировать код
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
String prettyJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonInput);

В метод writeValueAsString необходимо передать ваш JSON jsonInput и как результат, вы получите отформатированный JSON.

Кинга Идем в IT: пошаговый план для смены профессии

Обзор библиотек для элегантного вывода JSON

Проанализируем некоторые библиотеки для форматирования JSON в Java, включая Gson от Google, Jackson и org.json.

Gson: Ваш помощник в создании прекрасного JSON

Gson позволяет без особых трудностей конвертировать объекты Java в JSON и обратно. Одно из его преимуществ – поддержка форматирования с отступами.

Java
Скопировать код
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String prettyJsonString = gson.toJson(parsedJsonElement);

Для обработки JSON используется JsonParser:

Java
Скопировать код
JsonElement parsedJsonElement = JsonParser.parseString(jsonString);

Jackson: Универсальный инструмент для работы с JSON

Jackson предлагает богатый функционал для работы с JSON. При этом, стоит быть аккуратными при обработке исключений:

Java
Скопировать код
try {
    ObjectMapper mapper = new ObjectMapper();
    String prettyJsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(yourObject);
} catch (JsonProcessingException e) {
    e.printStackTrace();
}

Org.json: Классический подход от Крокфорда

Библиотека org.json, созданная Дугласом Крокфордом, предоставляет базовый функционал для работы с JSON:

Java
Скопировать код
JSONObject jsonObject = new JSONObject(jsonString);
String prettyPrinted = jsonObject.toString(4);

Дополнительные библиотеки: Быть на готове при работе с JSON

Genson и Moshi

Эти библиотеки подойдут, если вам необходимо удовлетворить специфические требования при работе с JSON.

JSON-P: Создано для Java EE

В Java EE используйте javax.json.JsonWriter:

Java
Скопировать код
JsonWriter writer = Json.createWriterFactory(config).createWriter(outputStream);
writer.writeObject(jsonObject);

Красивое форматирование и сохранение порядка полей: скрытые сложности

Будьте готовы к тому, что порядок полей может не сохраняться после форматирования.

Профессиональное управление зависимостями

Правильно управляйте зависимостями, подключая необходимые вам библиотеки:

groovy
Скопировать код
implementation 'com.google.code.gson:gson:2.8.8'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.0'

Визуализация

Использование Gson или Jackson позволит элегантно представить ваши данные в JSON:

Java
Скопировать код
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String prettyJson = gson.toJson(jsonString);

ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
String prettyJson = mapper.writeValueAsString(jsonString);

Результат – изящно отформатированные данные:

Markdown
Скопировать код
{
    "yummy": true,
    "ingredients": [
        "flour",
        "sugar",
        "eggs"
    ]
}

Тонкости элегантного форматирования

Не забывайте о влиянии форматирования на размер данных и производительность, и старайтесь избегать типичных ошибок.

Полезные материалы

  1. ObjectMapper (jackson-databind 2.7.0 API)
  2. Элегантное форматирование JSON в Java – Stack Overflow
  3. GsonBuilder – gson 2.10.1 javadoc
  4. JsonWriter (Java(TM) EE 7 Specification APIs)
  5. JSONObject
Свежие материалы