Java 怎么格式化 JSON:Jackson 实用写法
后端打日志、写配置文件、调试接口,经常需要把一行 JSON 变好看。Java 里最常用的还是 Jackson。
最小示例
ObjectMapper mapper = new ObjectMapper();
Object json = mapper.readTree(raw);
String pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
readTree 把字符串读成树,writerWithDefaultPrettyPrinter 输出带缩进的结果。两步就能完成美化,不用建实体类。
输出到日志
直接 log.info(pretty) 会把换行也打进去,日志平台里可能被拆成多行。
要么用 writeValueAsString 之后手动压回一行,要么配置日志框架把多行合并。
更稳妥的做法是只打关键字段,别把整个响应体打进生产日志。
敏感字段处理
用户信息、Token、身份证号,格式化之后更容易被看到,也更容易泄漏。
用 @JsonIgnore 排除字段,或者自定义 serializer 做脱敏。别指望“日志只有内部能看”,日志经常会进第三方平台。
和 fastjson 的区别
Jackson 是 Spring Boot 默认的 JSON 库,生态稳定,安全漏洞相对少。
fastjson 性能好、API 简单,但历史上有过反序列化漏洞,新项目建议优先 Jackson。
什么时候用在线工具
临时看一段接口返回、确认某个字段结构、排查转义问题,打开 JSON 在线解析 比写一段 Java 代码快。
尤其是别人发来一段报错日志,先格式化看清结构,再决定去代码里改哪里。工具是辅助,别把生产数据整个贴进去。