GSON - 人类可读性

Lim*_*eth 1 java serialization json export gson

好[插入日期],有没有办法导出Gson更人性化?

我目前得到这个:

[{"id":"test","region":{"lower":{"x":163,"y":63,"z":233},"higher":{"x":167,"y":67,"z":237}}}]
Run Code Online (Sandbox Code Playgroud)

但我希望得到这样的结果:

[{
    "id":"test",
    "region":
    {
        "lower":
        {
            "x":163,
            "y":63,
            "z":233
        },
        "higher":
        {
            "x":167,
            "y":67,
            "z":237
        }
    }
}]
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何建议.

Jig*_*shi 5

你可以setPrettyPrinting()在你的gson实例上

 Gson gson = new GsonBuilder().setPrettyPrinting().create();
 System.out.println(gson.toJson(yourObject));
Run Code Online (Sandbox Code Playgroud)

  • 它没有按预期工作. (2认同)

Bra*_*raj 5

在这种情况下,只需尝试使用JsonParser,您就不需要从JSON构造JAVA对象.

String json = "[{\"id\":\"test\",\"region\":{\"lower\":{\"x\":163,\"y\":63,\"z\":233},\"higher\":{\"x\":167,\"y\":67,\"z\":237}}}]";

Gson gson = new GsonBuilder().setPrettyPrinting().create();

JsonParser parser = new JsonParser();
JsonElement je = parser.parse(json.toString());

System.out.println(gson.toJson(je));
Run Code Online (Sandbox Code Playgroud)

输出:

[
 {
   "id": "test",
   "region": {
     "lower": {
       "x": 163,
       "y": 63,
       "z": 233
     },
     "higher": {
       "x": 167,
       "y": 67,
       "z": 237
     }
   }
 }
]
Run Code Online (Sandbox Code Playgroud)