簡體   English   中英

如何將每條JSON記錄放在單獨的行上?

[英]How to have each record of JSON on a separate line?

當我使用JSONArray和JSONObject生成JSON時,整個JSON將在一行中生成。 如何將每條記錄放在單獨的行上?

它生成如下:

 [{"key1":"value1","key2":"value2"}]

我需要它如下所示:

 [{
    "key1":"value1",
    "key2":"value2"
    }]

您可以使用Pretty Print JSON Output(Jackson)。

波紋管是一些例子

  1. 轉換對象並以JSON格式輸出其輸出。

      User user = new User(); //...set user data ObjectMapper mapper = new ObjectMapper(); System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user)); 
  2. 漂亮的打印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

為了獲得易於閱讀的json文件,您可以使用以下命令將ObjectMapper配置為縮進:

objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM