侧边栏壁纸
博主头像
996worker

祇園精舎の鐘の聲, 諸行無常の響き有り。

  • 累计撰写 189 篇文章
  • 累计创建 46 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

@JsonInclude注解的使用

996worker
2021-12-07 / 0 评论 / 0 点赞 / 157 阅读 / 678 字
温馨提示:
本文最后更新于 2021-12-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

起因

今天,前端要求说服务器回应的JSON尽量不要有null,可有为空串“” 或者 0 或者 [],但尽量不要null;

后天,前端要求说回应的JSON如果某个字段为空,就不要有这个字段了.

使用@JsonInclude注解,实体类与json互转的时候,能够决定属性值为null的参不参与序列化.

介绍

@JsonInclude标记是jackson包提供的json序列化方法,已经集成于Springboot中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理.

将该标记放在属性上,如果该属性为空字符串或者为null则都不参与序列化 。如果放在类上边,那对这个类的全部属性起作用.

注解中带参数,如@JsonInclude(JsonInclude.Include.NON_EMPTY)

参数:

  1. ALWAYS // 默认策略,任何情况都执行序列化

  2. NON_NULL // 非空,当属性为NULL不序列化

  3. NON_ABSENT // null的不会序列化,但如果类型是AtomicReference,依然会被序列化

  4. NON_EMPTY // null、集合数组等没有内容、空字符串等,都不会被序列化

  5. NON_DEFAULT // 如果字段是默认值,就不会被序列化

  6. CUSTOM // 此时要指定valueFilter属性,该属性对应一个类,用来自定义判断被JsonInclude修饰的字段是否序列化

  7. USE_DEFAULTS // 当JsonInclude在类和属性上都有时,优先使用属性上的注解,此时如果在序列化的get方法上使用了JsonInclude,并设置为USE_DEFAULTS,就会使用类注解的设置

0

评论区