如何使用Java漂亮地打印现有的JSON数据?

|                                                                                                                   关闭。这个问题是题外话。它当前不接受答案。                                                      
已邀请:
        我认为对于漂亮打印的东西,了解其结构非常有帮助。 要获得结构,您必须对其进行解析。因此,我不认为它比首先解析您拥有的JSON字符串然后使用上面注释中提到的漂亮打印方法toString容易得多。 当然,您可以对任何喜欢的JSON库执行类似的操作。     
        
int spacesToIndentEachLevel = 2;
new JSONObject(jsonString).toString(spacesToIndentEachLevel);
使用
org.json.JSONObject
(内置于JavaEE和Android中)     
        使用gson。 https://www.mkyong.com/java/how-to-enable-pretty-print-json-output-gson/
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(my_bean);
输出
{
  \"name\": \"mkyong\",
  \"age\": 35,
  \"position\": \"Founder\",
  \"salary\": 10000,
  \"skills\": [
    \"java\",
    \"python\",
    \"shell\"
  ]
}
    
        一行:
String niceFormattedJson = JsonWriter.formatJson(jsonString)
要么
System.out.println(JsonWriter.formatJson(jsonString.toString()));
json-io libray(https://github.com/jdereg/json-io)是一个小型(75K)库,除JDK外没有其他依赖项。 除了打印精美的JSON之外,您还可以将Java对象(带有循环的整个Java对象图)序列化为JSON,并读入它们。     
        如果您使用杰克逊,则可以通过在ѭ7configuring中配置ѭ6easily轻松实现此目的:
com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();

mapper.configure(SerializationFeature.INDENT_OUTPUT, true);

mapper.writeValueAsString(<yourObject>);
而已。     
        使用gson的另一种方法:
String json_String_to_print = ...
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser jp = new JsonParser();
return gson.toJson(jp.parse(json_String_to_print));
当您没有susemi99的帖子中的bean时,可以使用它。     
        我找到了一个非常简单的解决方案:
<dependency>
    <groupId>com.cedarsoftware</groupId>
    <artifactId>json-io</artifactId>
    <version>4.5.0</version>
</dependency>
Java代码:
import com.cedarsoftware.util.io.JsonWriter;
//...
String jsonString = \"json_string_plain_text\";
System.out.println(JsonWriter.formatJson(jsonString));
    
        Underscore-java库具有方法
U.formatJson(json)
U.formatXml(xml)
。我是该项目的维护者。     

要回复问题请先登录注册