【问题标题】:Json Object Array Write in Java line by line用Java逐行写入Json对象数组
【发布时间】:2016-04-15 20:20:04
【问题描述】:

我有一个具有一些价值的数组 当我存储该数组时,我得到了这样的结果

[{"id":56678,"Name":"Rehman Agarwal"},{"id":66849,"Name":"Rasul Guha"}]

表示在一行中。

但我只想得到类似的输出

[{"id":56678,"Name":"Rehman Agarwal"},
{"id":66849,"Name":"Rasul Guha"}]

JSON 对象后的新行 ..

怎么做?

编辑:我使用 JSONObject && JSONArray 分别创建json对象和数组

【问题讨论】:

标签: java arrays json printing


【解决方案1】:

使用 gson 库,您可以漂亮地打印您的 json 字符串,如下所示 -

public static String toPrettyFormat(String jsonString) {
    JsonParser parser = new JsonParser();
    JsonObject json = parser.parse(jsonString).getAsJsonObject();

    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    String prettyJson = gson.toJson(json);

    return prettyJson;
}

并像下面这样称呼它 -

public void testPrettyPrint() {
    String compactJson = "{\"playerID\":1234,\"name\":\"Test\",\"itemList\":[{\"itemID\":1,\"name\":\"Axe\",\"atk\":12,\"def\":0},{\"itemID\":2,\"name\":\"Sword\",\"atk\":5,\"def\":5},{\"itemID\":3,\"name\":\"Shield\",\"atk\":0,\"def\":10}]}";

    String prettyJson = toPrettyFormat(compactJson);

    System.out.println("Compact:\n" + compactJson);
    System.out.println("Pretty:\n" + prettyJson);
}

【讨论】:

  • 有没有内置的方法可以做到这一点?添加一个库只是为了在新行上打印每个条目似乎是板上钉钉的事情。
猜你喜欢
  • 2019-09-22
  • 2019-06-01
  • 2020-03-30
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多