在某些地方,我们正在记录JSON字符串。为了更好的可读性,我们想要打印它们。因此我们正在使用:
v_JsonString = v_ObjectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(v_Json);
但是在将结果传递给记录器之后,字符串只是单行,换行符等消失了。使用的记录模式是:
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
我们还尝试通过设置一些占位符并在模式中替换它们来手动完成:
%replace(%msg){'PLACEHOLDER', '\\n'}
没有任何成功,每个日志条目都会转换为单行。保留格式化字符串信息的正确方法是什么?
修改 问题不在于记录器,杰克逊在没有序列化的情况下不能打印字符串,请参阅https://stackoverflow.com/a/39119883/1924298
答案 0 :(得分:1)
Object json = mapper.readValue(input, Object.class);
String indented = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);