Как получить равные пробелы внутри каждого свойства в JSON с помощью GSON?

#java #json #gson

#java #json #gson

Вопрос:

Я использую Gson для игры с JSON. В моем приведенном ниже коде:

 JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("fname", "john");
jsonObject.addProperty("lname", "cena");
System.out.println(jsonObject.toString());
  

Он выводится следующим образом:

 {"fname":"john","lname":"cena"}
  

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

 {"fname" : "john", "lname" : "cena"}
  

Комментарии:

1. JSON не заботится о пробелах вне кавычек… Зачем вам это нужно?

2. Для этого нет причин, о которых я могу думать. Однако, если вам нужно, должно быть легко создать оболочку для JsonObject и переопределить toString метод.

Ответ №1:

Вы можете использовать красивую печать Gson. JSON.org в библиотеке есть что-то похожее. (Я уверен, что Джексон тоже так делает). Примечание: это также отформатирует его, чтобы он был очень удобочитаемым.

 Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(obj);
System.out.println(json);