jackson常用注解和配置

问题

以jackson实体转json时 ,为NULL不参加序列化为例
添加依赖:

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
实体上使用

实体上使用@JsonInclude(JsonInclude.Include.NON_NULL)

  • 1、如果放在属性上,如果该属性为NULL则不参与序列化 ;
  • 2、如果放在上,那对这个类的全部属性起作用 ;

参数意义:

  • JsonInclude.Include.ALWAYS 默认

  • JsonInclude.Include.NON_DEFAULT 属性为默认值不序列化

  • JsonInclude.Include.NON_EMPTY 属性为 空(””) 或者为 NULL 都不序列化

  • JsonInclude.Include.NON_NULL 属性为NULL 不序列化

使用前:

使用后:

配置文件使用

如果不想每次都这样添加,可以在application.yml配置全局定义, 这种默认都生效

spring:

   jackson:

        default-property-inclusion: non_null
其他常用注解介绍
@JsonIgnore

作用在字段或方法上,用来完全忽略被注解的字段和方法对应的属性。

@JsonProperty

作用在字段或方法上,用来对属性的序列化/反序列化,可以用来避免遗漏属性,同时提供对属性名称重命名

@JsonIgnoreProperties

作用在类上,用来说明有些属性在序列化/反序列化时需要忽略掉,可以将它看做是@JsonIgnore的批量操作。
可以注明是想要忽略的属性列表如@JsonIgnoreProperties({“name”,”age”,”title”}),
也可以注明过滤掉未知的属性如@JsonIgnoreProperties(ignoreUnknown=true)

public class ProductVO implements Serializable {

    private static final long serialVersionUID = 7097863777546530545L;

    @JsonProperty("name")
    private String categoryName;

    @JsonProperty("type")
    private Integer categoryType;

    @JsonProperty("foods")
    private List<ProductInfoVO> productInfoVOList;
}

……
博文参考了 jackson实体转json时 为NULL不参加序列化的汇总

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值