最近遇到几个null值问题,应该还有很多,暂且记录几个
一、实体类null值不需要返回
解决方法:在实体类上加上注解 @JsonInclude(JsonInclude.Include.NON_NULL)
@JsonInclude value值详解:
1 ALWAYS 默认级别,所有的pojo的属性都会被序列化
2 NON_NULL 只有非null的属性才会被序列化
3 NON_ABSENT java中有些复杂的数据结构,比如AtomicReference或是Optional,如果某个属性是这个类型,虽然此属性不为null,但是其包装的内容是null的,此注解的作用是,只有此属性不为null,且其包装的内容是有值的才会被序列化
4 NON_EMPTY 不为空,有些属性如果是Collection或是Map或是Timestamp等,比如某个属性是Timestamp且其值是0,那么可以认为这个属性是empty
5 NON_DEFAULT 只有此属性不为默认值的时候,才序列化
6 CUSTOM 自定义,filter定义的过滤器需要重写equals方法,如果返回false,那么进行序列化,如果为true,就不序列化
7 USE_DEFAULTS 使用默认
引用链接: 牧羊人刘俏
二、对象转json字符串时null值被过滤
解决方法有两种:
1.如果逻辑上允许,可以把null修改为“”;
2.JSONObject.toJSONString(XXXBean, SerializerFeature.WriteMapNullValue);
三、null值判断时
最好把null写前面,如:null!=XXX
如果没有时间限制,一切都失去了意义!