Jackson序列化核心是ObjectMapper的writeValueAsString()方法,三步完成:创建实例、准备对象、调用方法;支持@JsonIgnore等注解控制字段、@JsonFormat处理日期、@JsonValue定制枚举,并可启用缩进优化输出。

Java 中用 Jackson 库做对象序列化,核心就是 ObjectMapper 类的 writeValueAsString() 方法——一行代码就能把对象转成标准 JSON 字符串。
基础用法:三步搞定序列化
只要类有无参构造器和可访问的字段(或 getter 方法),就能直接序列化:
- 创建
ObjectMapper实例(通常复用一个全局单例) - 准备待序列化的 Java 对象(如
User user = new User("Alice", 28)) - 调用
mapper.writeValueAsString(user),返回形如{"name":"Alice","age":28}的字符串
字段控制:按需决定哪些字段出现
不是所有字段都要进 JSON。Jackson 提供多种方式灵活控制:
-
@JsonIgnore标在字段或 getter 上,该字段彻底不参与序列化(比如密码、临时状态) -
@JsonIgnoreProperties({"field1", "field2"})标在类上,批量忽略多个字段 -
@JsonInclude(JsonInclude.Include.NON_NULL)让 null 值字段不输出(减少冗余) -
@JsonProperty("user_name")可重命名字段,适配外部 API 的字段名约定
特殊类型处理:日期、枚举、嵌套对象
简单 POJO 没问题,但遇到复杂类型得稍作配置:
- 日期类型默认序列化为时间戳,加
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")可转为可读字符串 - 枚举默认用 name() 序列化,加
@JsonValue可指定返回自定义值(如枚举的 code 字段) - 嵌套对象天然支持——只要子对象也有合法结构,Jackson 会递归处理,无需额外操作
输出格式优化:便于调试和阅读
生产环境用紧凑格式,开发调试时建议开启缩进:
-
mapper.enable(SerializationFeature.INDENT_OUTPUT)让生成的 JSON 自动换行缩进 - 也可写入文件:
mapper.writeValue(new File("user.json"), user),一步落地
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











