【发布时间】:2022-01-14 10:44:35
【问题描述】:
我正在尝试像这样输出序列化为 json 的对象
@GetMapping("/person")
public String getPerson() throws JsonProcessingException {
mapper.enable(SerializationFeature.INDENT_OUTPUT);
System.out.println(mapper.writeValueAsString(person)); //just for debug
return mapper.writeValueAsString(person);
}
我在控制台中得到了我想要的:
{
"name" : "person",
"age" : 29,
"listSkills" : [ "s1", "s2", "s3" ],
"id" : 1,
"hashCode" : 2145420209
}
但在浏览器中它打印在一行中,只是得到不同的字体
{ "name" : "person", "age" : 29, "listSkills" : [ "s1", "s2", "s3" ], "id" : 1, "hashCode" : 2145420209 }
【问题讨论】:
-
您的浏览器是否输出您在“查看源代码”模式下看到的文本?还是渲染的版本?
-
但是 writeValueAsAStringReturns String - 我之前返回了一个 Person 但后来我决定让它在浏览器中看起来很漂亮并进入这个解决方案。我在 Chrome 和 Safari 中尝试过 - 结果相同。
-
你不应该在服务器端格式化
JSON。您增加了响应大小并浪费了时间。如果需要,在前端对其进行格式化,但我相信不是。