Как красиво выводить JSON в Java с помощью json-simple
Быстрый ответ
Для форматирования JSON с отступами в Java используйте библиотеку Jackson, используя ObjectMapper
:
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.
Обзор библиотек для элегантного вывода JSON
Проанализируем некоторые библиотеки для форматирования JSON в Java, включая Gson от Google, Jackson и org.json.
Gson: Ваш помощник в создании прекрасного JSON
Gson позволяет без особых трудностей конвертировать объекты Java в JSON и обратно. Одно из его преимуществ – поддержка форматирования с отступами.
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String prettyJsonString = gson.toJson(parsedJsonElement);
Для обработки JSON используется JsonParser
:
JsonElement parsedJsonElement = JsonParser.parseString(jsonString);
Jackson: Универсальный инструмент для работы с JSON
Jackson предлагает богатый функционал для работы с JSON. При этом, стоит быть аккуратными при обработке исключений:
try {
ObjectMapper mapper = new ObjectMapper();
String prettyJsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(yourObject);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
Org.json: Классический подход от Крокфорда
Библиотека org.json, созданная Дугласом Крокфордом, предоставляет базовый функционал для работы с JSON:
JSONObject jsonObject = new JSONObject(jsonString);
String prettyPrinted = jsonObject.toString(4);
Дополнительные библиотеки: Быть на готове при работе с JSON
Genson и Moshi
Эти библиотеки подойдут, если вам необходимо удовлетворить специфические требования при работе с JSON.
JSON-P: Создано для Java EE
В Java EE используйте javax.json.JsonWriter
:
JsonWriter writer = Json.createWriterFactory(config).createWriter(outputStream);
writer.writeObject(jsonObject);
Красивое форматирование и сохранение порядка полей: скрытые сложности
Будьте готовы к тому, что порядок полей может не сохраняться после форматирования.
Профессиональное управление зависимостями
Правильно управляйте зависимостями, подключая необходимые вам библиотеки:
implementation 'com.google.code.gson:gson:2.8.8'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.0'
Визуализация
Использование Gson или Jackson позволит элегантно представить ваши данные в JSON:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String prettyJson = gson.toJson(jsonString);
ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
String prettyJson = mapper.writeValueAsString(jsonString);
Результат – изящно отформатированные данные:
{
"yummy": true,
"ingredients": [
"flour",
"sugar",
"eggs"
]
}
Тонкости элегантного форматирования
Не забывайте о влиянии форматирования на размер данных и производительность, и старайтесь избегать типичных ошибок.