当开启 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 字符串中,所有元素都紧密地放在一行上,没有缩进,这样的格式虽然更加紧凑,但是对于阅读来说不够友好。