杰克逊相当打印字符串

时间:2016-08-24 09:12:29

标签: java json jackson

在某些地方,我们正在记录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

1 个答案:

答案 0 :(得分:1)

Object json = mapper.readValue(input, Object.class);

String indented = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);