@JsonInclude(JSON include.Include) 谁借莪1个温暖的怀抱¢ 2024-03-30 16:36 70阅读 0赞 \*\*@JsonInclude(JSON include.Include.NON\_EMPTY)\*\*标记是jackson包提供的json[序列化][Link 1]方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理。 将该标记放在属性上,如果该属性为空[字符串][Link 2]或者为null则都不参与序列化 。如果放在类上边,那对这个类的全部属性起作用 > ALWAYS // 默认策略,任何情况都执行序列化 > > NON\_NULL // 非空 属性为NULL 不序列化 > > NON\_ABSENT // null的不会序列化,但如果类型是AtomicReference,依然会被序列化 > > NON\_EMPTY // null、集合数组等没有内容、空字符串等,都不会被序列化 > > NON\_DEFAULT // 如果字段是默认值,就不会被序列化 > > CUSTOM // 此时要指定valueFilter属性,该属性对应一个类,用来自定义判断被JsonInclude修饰的字段是否序列化 > > USE\_DEFAULTS // 当JsonInclude在类和属性上都有时,优先使用属性上的注解,此时如果在序列化的get方法上使用了JsonInclude,并设置为USE\_DEFAULTS,就会使用类注解的设置 此注解适用于类标头,可以对实体类引用会自动按规则过滤实体类生成的json数据,也可以通过实现Serializable接口来标识此注解,用于对类的最终json结构进行过滤处理。 除了注解式配置以外SpringBoot还提供了Application.yml配置方法 spring: jackson: default-property-inclusion: non_null object方法 ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setSerializationInclusion(JsonInclude.Include.CUSTOM); 注:application.yml这个地方的配置是全局配置可能会影响到其他的某些服务接口,所以谨慎配置。 [Link 1]: https://so.csdn.net/so/search?q=%E5%BA%8F%E5%88%97%E5%8C%96&spm=1001.2101.3001.7020 [Link 2]: https://so.csdn.net/so/search?q=%E5%AD%97%E7%AC%A6%E4%B8%B2&spm=1001.2101.3001.7020
还没有评论,来说两句吧...