@JsonInclude注解

定义

@JsonInclude注解的作用是指定实体类在序列化时的策略,在实体类序列化成json的时候在某些策略下,加了该注解的字段不去序列化该字段。例如,返回前端的实体类中如果某个字段为空的话那么就不返回这个字段了。

用法

@JsonInclude注解用在实体类或属性上,可配合如下参数使用

  • ALWAYS:表示总是序列化所有属性
  • NON_NULL:表示序列化非null属性
  • NON_ABSENT:表示序列化非null或者引用类型缺省值,例如java8的Optional类,这个选中通常与Optional一起使用
  • NON_EMPTY:表示序列化非Empty的属性,例如空的集合不会被序列化
  • NON_DEFAULT:仅包含与POJO属性默认值不同的值
  • CUSTOM:由{@link JsonInclude#valueFilter}指定值本身,或由{@link JsonInclude#contentFilter}指定结构化类型的内容,由过滤器对象的equals方法进行序列化,返回true则会被排除,返回false会被序列化
  • USE_DEFAULTS:使用默认值

代码示例

示例1:

entity

@JsonInclude(JsonInclude.Include.NON_NULL)
public class User {
	private Long id;
	private String name;
	private Integer sex;
	
	// ... 此处省略gettet setter
}

 controller

// ... 省略
	@GetMapping("/get")
	@ResonseBody
	public User get(){
		User user = new User();
		user.setName("张三");
		return user
	}
// ... 省略

 返回结果

{
	"name":"张三"
}

示例2:

entity

public class User {
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String username;
    private String password;
    private Integer age;
    }

 controller

    // ... 省略
	@GetMapping("/get")
	@ResonseBody
	public User get(){
		User user = new User();
		return user
	}
// ... 省略

 返回结果

{"password":null,"age":null}

username上面加了这儿注解并且指定为null的时候不序列化,结果里面没有序列化username这个属性。password和age字段没有加属性,正常序列化成功。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值