Java 杰克逊漂亮的打印字符串

Java 杰克逊漂亮的打印字符串,java,json,jackson,Java,Json,Jackson,在某些地方,我们记录JSON字符串。为了更好的可读性,我们想把它们打印出来。因此,我们使用: v_JsonString = v_ObjectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(v_Json); 但将结果传递给记录器后,字符串仅为单行,断线等消失。使用的日志记录模式是: <pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern

在某些地方,我们记录JSON字符串。为了更好的可读性,我们想把它们打印出来。因此,我们使用:

v_JsonString = v_ObjectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(v_Json);
但将结果传递给记录器后,字符串仅为单行,断线等消失。使用的日志记录模式是:

<pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
如果没有任何成功,每个日志条目都将转换为单行。保存格式化字符串信息的正确方法是什么

编辑
问题不在于记录器,Jackson没有序列化就无法打印字符串,请参见

问题解决了。问题不在于记录器/设置。真正的原因如下所述:

编辑


由于尝试使用类型“Object”时出现序列化错误,因此该问题未得到解决。我将编辑原始问题。

您是否检查了结果(预打印)字符串中是否实际包含换行符?我真丢脸,因为我没有检查writerWithDefaultPrettyPrinter结果。调试器没有显示换行符。有时我会因为问这些问题而感到不舒服。人们有时会生气。但正如你所看到的:总是反复检查。。。
Object json = mapper.readValue(input, Object.class);

String indented = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
Object json = mapper.readValue(input, Object.class);

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