2017-08-02 92 views
0

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

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

回答

0

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

GSON提供的方法setPrettyPrinting(),

例如,

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

缩进任何旧的JSON,只是将其绑定的对象,如:

ObjectMapper mapper = new ObjectMapper(); 

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

然后写它与缩进:

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