java json 序列化对象空值不处理_jackson 实体转json 为NULL或者为空不参加序列化(实例讲解)…

  • Post author:
  • Post category:java


使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null;这样在某些前端组件上应用该json对象会报错。(例如:echarts)

下面总结了两种方法,解决了当属性为null时不参与序列化:

方法一:

1.实体上使用如下注解 @JsonInclude(Include.NON_NULL)

将该标记放在属性上,如果该属性为NULL则不参与序列化 ;如果放在类上边,那对这个类的全部属性起作用。

具体取值有:

//Include.Include.ALWAYS 默认

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

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

//Include.NON_NULL 属性为NULL 不序列化

注:使用了该注解,那么在import时需要把一下两个类引入到源文件中

import com.fasterxml.jackson.annotation.JsonInclude;

import com.fasterxml.jackson.annotation.JsonInclude.Include;

2.代码上使用如下方法:

ObjectMapper mapper = new ObjectMapper();

mapper.setSerializationInclusion(Include.NON_NULL);

User user = new User(1,””,null);

String outJson = mapper.writeValueAsS



版权声明:本文为weixin_39909001原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。