如何在单独的行上记录每条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

    上一篇: How to have each record of JSON on a separate line?

    下一篇: like function for javascript objects?