在某些地方,我们正在记录 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'}
如果没有成功,每个日志条目都会转换为单行。保存格式化字符串信息的正确方法是什么?
编辑 问题不在于记录器,Jackson 在没有序列化的情况下无法漂亮地打印字符串,请参阅 https://stackoverflow.com/a/39119883/1924298
最佳答案
Object json = mapper.readValue(input, Object.class);
String indented = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
关于java - jackson 漂亮的印花绳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39119091/