一尘不染

如何获得精美印刷的JSON代码的紧凑形式?

json

如何使Jackson的build()方法漂亮地打印其JSON输出?这是一个漂亮地打印丑陋形式的JSON代码的示例。我需要采用漂亮的JSON代码版本,然后将其简化为丑陋的FOM。如何做呢?我需要将其转换为:

 {
   "one" : "AAA",
   "two" : [ "BBB", "CCC" ],
   "three" : {
     "four" : "DDD",
     "five" : [ "EEE", "FFF" ]
   }
 }

对此:

{"one":"AAA","two":["BBB","CCC"],"three":{"four":"DDD","five":["EEE","FFF"]}}

我试图删除’\ n’,’\ t’和’‘字符;但是值中可能包含某些字符,所以我不能这样做。还有什么可以做的?


阅读 287

收藏
2020-07-27

共1个答案

一尘不染

Jackson允许您从JSON字符串读取,因此将漂亮打印的字符串读回到Jackson中,然后在禁用漂亮打印的情况下再次输出。

简单的例子

    String prettyJsonString = "{ \"Hello\" : \"world\"}";
    ObjectMapper objectMapper = new ObjectMapper();
    JsonNode jsonNode = objectMapper.readValue(prettyJsonString, JsonNode.class);
    System.out.println(jsonNode.toString());

需要

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.5.3</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.5.3</version>
</dependency>
2020-07-27