‌JsonInclude注解

JsonInclude注解的主要作用是在序列化过程中指定哪些字段应该被包含在JSON输出中,哪些字段应该被排除。‌通过使用JsonInclude注解,开发者可以控制实体类在序列化为JSON时的行为,例如在某些情况下忽略某些字段。JsonInclude注解可以应用于实体类或其属性上,并配合不同的参数来定义序列化的策略。

策略参数

JsonInclude注解支持多种策略参数,每种参数定义了不同的序列化行为:

  • ALWAYS‌:总是序列化所有属性。
  • NON_NULL‌:仅序列化非null属性。
  • NON_ABSENT‌:非null或引用类型的缺省值(如Optional类)会被序列化。
  • NON_EMPTY‌:仅序列化非空的集合或数组。
  • NON_DEFAULT‌:仅包含与POJO属性默认值不同的值。
  • ‌CUSTOM‌:通过valueFiltercontentFilter指定自定义的过滤逻辑。
  • ‌USE_DEFAULTS‌:使用默认值进行序列化。

使用场景和示例

JsonInclude注解可以用于控制实体类在序列化为JSON时的具体行为。例如,在一个用户实体类中,可以使用JsonInclude注解来指定某些字段在特定条件下不被序列化。以下是一个示例:

@JsonInclude(JsonInclude.Include.NON_NULL)
public class User {
    private Long id;
    private String name;
    private Integer sex; // 此字段为null时不会被序列化
    // ... 省略getter和setter方法
}

在这个例子中,sex字段在序列化为JSON时如果为null则不会被包含在输出中。通过这种方式,可以有效地控制JSON输出的内容和结构,使得API返回的数据更加简洁和有用。

 

posted @ 2024-12-11 11:00  wq9  阅读(183)  评论(0)    收藏  举报