【问题标题】:GSON - Human readability [duplicate]GSON - 人类可读性 [重复]
【发布时间】:2014-05-19 19:06:32
【问题描述】:

好[插入日相], 有没有办法让 Gson 更易于阅读?

我目前得到这个:

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

但我想达到这样的结果:

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

感谢您的任何建议。

【问题讨论】:

    标签: java json serialization export gson


    【解决方案1】:

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

     Gson gson = new GsonBuilder().setPrettyPrinting().create();
     System.out.println(gson.toJson(yourObject));
    

    【讨论】:

    • 它没有按预期工作。
    • 输出是什么,你的期望是什么?
    • 单行打印。
    • 这里的yourObject 是什么?它是一个简单的 json 字符串对象吗?
    • @Braj 不,它应该是您的数据对象,它将被转换为 JSON 表示并且它工作得很好
    【解决方案2】:

    只需尝试使用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));
    

    输出:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 2018-09-10
      相关资源
      最近更新 更多