【问题标题】:How to output JSON string in formatted form? [duplicate]如何以格式化形式输出 JSON 字符串? [复制]
【发布时间】:2018-01-10 03:07:00
【问题描述】:

例如,我想打印如下,而不是一行。这是一个 JSON 字符串。默认情况下,myJsonObject.toString() 是一个单行字符串。 org.json.JSONObject 中是否有一些方法可以直接输出这种格式化的形式?

 {
    "name":"John",
    "age":30,
    "cars": [
        { "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
        { "name":"BMW", "models":[ "320", "X3", "X5" ] },
        { "name":"Fiat", "models":[ "500", "Panda" ] }
    ]
 }

【问题讨论】:

    标签: java json


    【解决方案1】:

    打印漂亮的 json 字符串有不同的方法。

    GSON 提供了一个方法 setPrettyPrinting(),

    例如,

    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    JsonElement jsonElement =  new JsonParser().parse(jsonString);
    System.out.println(gson.toJson(jsonElement));
    

    【讨论】:

      【解决方案2】:

      要缩进任何旧的 JSON,只需将其绑定为 Object,例如:

      ObjectMapper mapper = new ObjectMapper();
      
      Object json = mapper.readValue(myJsonObject, Object.class);
      

      然后用缩进写出来:

      String indented = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
      

      【讨论】:

        猜你喜欢
        • 2012-01-05
        • 1970-01-01
        • 1970-01-01
        • 2014-05-12
        • 2019-09-30
        • 1970-01-01
        • 2012-03-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多