JsonIgnore注解
@JsonIgnore注解
背景
-
JSON
定义
@JsonIgnore是 Jackson 框架(Java 中最常用的 JSON 序列化 / 反序列化工具)提供的注解,作用是:在将 Java 对象转换成 JSON 字符串(序列化),或把 JSON 字符串转换成 Java 对象(反序列化)时,忽略被该注解标记的字段 / 方法。简单说:加了这个注解的字段,不会出现在 JSON 数据里;反序列化时,JSON 里的对应字段也不会赋值给 Java 对象的这个字段。
为什么要用 @JsonIgnore?
-
实际开发中常见场景:
-
隐藏敏感信息:比如用户的密码(password)、token 等字段,不希望返回给前端;
-
避免循环引用:比如 A 对象引用 B,B 又引用 A,序列化时会无限递归,忽略其中一个引用字段就能解决;
-
排除无意义字段:比如临时计算的字段、数据库主键(前端不需要)等。
-
和 @JsonIgnoreProperties 的区别
@JsonIgnore:标记单个字段 / 方法;@JsonIgnoreProperties:标记在类上,批量忽略多个字段(比如@JsonIgnoreProperties({"password", "token"}));- 框架兼容性:Spring Boot/Spring MVC 内置了 Jackson,所以在 Controller 中返回对象时,该注解会自动生效;如果用 FastJSON 等其他 JSON 工具,该注解无效(FastJSON 用
@JSONField(serialize=false))。
总结
@JsonIgnore是 Jackson 框架的注解,核心作用是忽略字段的 JSON 序列化 / 反序列化;- 主要用于隐藏敏感信息、解决循环引用,优先直接标记在实体类字段上;
- 使用前需确保引入 Jackson 依赖,且注意不同 JSON 工具的注解不通用。