如何在单独的行上记录每条JSON记录?
当我使用JSONArray和JSONObject生成JSON时,整个JSON将在一行中生成。 我怎样才能将每条记录放在单独的行上?
它产生像这样:
[{"key1":"value1","key2":"value2"}]
我需要它如下所示:
[{
"key1":"value1",
"key2":"value2"
}]
你可以使用Pretty Print JSON
Output(Jackson)。
贝娄是一些例子
转换对象并以JSON格式打印输出。
User user = new User();
//...set user data
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user));
漂亮的打印JSON字符串
String test = "{"age":29,"messages":["msg 1","msg 2","msg 3"],"name":"myname"}";
Object json = mapper.readValue(test, Object.class);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json));
参考:http://www.mkyong.com/java/how-to-enable-pretty-print-json-output-jackson/
您可以使用google-gson
库来美化您的JSON字符串。 你可以从这里下载图书馆
示例代码:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(uglyJSONString);
String prettyJsonString = gson.toJson(je);
要么
你可以使用org.json
示例代码:
JSONTokener tokener = new JSONTokener(uglyJsonString); //tokenize the ugly JSON string
JSONObject finalResult = new JSONObject(tokener); // convert it to JSON object
System.out.println(finalResult.toString(4)); // To string method prints it with specified indentation.
请参阅此帖中的答案:Java中的Pretty-Print JSON
许多现代浏览器(包括IE8)支持的JSON.stringify方法可以输出一个美化的JSON字符串:
JSON.stringify(jsObj, null, "t"); // stringify with tabs inserted at each level
JSON.stringify(jsObj, null, 4); // stringify with 4 spaces at each level
并请参阅:https://stackoverflow.com/a/2614874/3164682
你也可以在这里美化你的字符串。http://codebeautify.org/jsonviewer
链接地址: http://www.djcxy.com/p/48211.html