spring.jackson.serialization.indent-output=true配置项的作用

2023-05-14 20:55:49 浏览数 (1)

当开启 spring.jackson.serialization.indent-output=true 时,生成的 JSON 字符串会按照固定的格式进行缩进,使得 JSON 字符串更加易读。例如,使用以下代码:

代码语言:javascript复制
ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT);  MyObject obj = new MyObject(); String json = mapper.writeValueAsString(obj); 

生成的 JSON 字符串可能会如下所示:

代码语言:javascript复制
{
  "field1": "value1",
  "field2": 123,
  "field3": {
    "subfield1": "subvalue1",
    "subfield2": "subvalue2"
  }
}

可以看到,生成的 JSON 字符串中,每个对象和数组都会占用一行,并且嵌套的元素采用了缩进的格式。这样的格式使得 JSON 字符串更加易读。

当关闭 spring.jackson.serialization.indent-output 时,生成的 JSON 字符串会采用紧凑格式,所有的元素都放在一行上,不进行缩进。例如,使用以下代码:

代码语言:javascript复制
ObjectMapper mapper = new ObjectMapper();  MyObject obj = new MyObject(); String json = mapper.writeValueAsString(obj); 

可能会生成如下所示的 JSON 字符串:

代码语言:javascript复制
{"field1":"value1","field2":123,"field3":{"subfield1":"subvalue1","subfield2":"subvalue2"}} 

可以看到,生成的 JSON 字符串中,所有元素都紧密地放在一行上,没有缩进,这样的格式虽然更加紧凑,但是对于阅读来说不够友好。

0 人点赞