Java对象为空时,将null转换为"" 保存值为空的属性

摘要:
importorg.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;


Java对象为空时,不显示该对象属性,或者将null转换为""
第一种方法:
@JsonInclude(JsonInclude.Include.NON_NULL)
private String resourceName;
Include.ALWAYS 属性都序列化
Include.NON_DEFAULT 属性为默认值不序列化
Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化
Include.NON_NULL 属性为NULL 不序列化
第二种方法:自定义一个objectmapper
import java.io.IOException;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
/**
* null返回空字符串
*/
@Configuration
public class JacksonConfig {
@Bean
@Primary
@ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
SerializerProvider serializerProvider = objectMapper.getSerializerProvider();
serializerProvider.setNullValueSerializer(new JsonSerializer<Object>() {
@Override
public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeString("");
}
});
return objectMapper;
}
}
————————————————

注意但是这个方法会把对象为空,list ,map ,枚举 为 null的情况下也转成 空字符串,这是个弊端,根据需求而用吧。

第三种方法:直接设置属性默认值

就是在初始化实体类的时候设置属性默认值

如:

private String name="";

———————————————— https://blog.csdn.net/qq_36802726/article/details/88895444

java 查询时实体不返回字段为空的数据
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class VAuth extends Auth {

}


list转json时保存值为空的属性
String param=JSONObject.toJSONString(fhlist, SerializerFeature.WriteMapNullValue);
效果:[{"channel_id":1,"channel_name":"测试通道","channel_Url":null}]

免责声明:文章转载自《Java对象为空时,将null转换为"" 保存值为空的属性》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Socket详解(转)moment.js格式化日期,获取前一个月的时间下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[java]创建一个默认TreeMap() key为什么不能为null

 本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作。 先看一下 TreeMap 的 put(K key, V value) public TreeMap() { comparator = null;} public V put(K key, V value) { Entry<K,V...

关于DataGridView的索引

最近在做一个课堂练习是被郁闷了一把。现成的事成了想当然的事。案例如下。 是一个WinForm程序,在DataGridView绑定控件后,选择一行,进行操作,代码如下: 数据绑定代码: SqlDataAdapter da = newSqlDataAdapter("select id from shuji","server=.;database=tushudb...

获取,标签里面属性的值的方法

获取,标签里面属性的值的方法,(下面是获取a标签里面属性source-data-lazy-img的值 ) soup2 = BeautifulSoup(span.encode('utf-8'), 'html.parser')for img2 in soup2.find_all('img',{"source-data-lazy-img":True}):  pr...

DataGridView列增加单选按钮、输入框

DataGridView列增加单选按钮,并设置被选中  1.DataGridView新增列时,设置属性 “ColumnType” = DataGridViewCheckBoxColumn  2.可使用CellContentClick事件 if (this.data.Columns[e.ColumnIndex].Name == "ColumnName")...

SwipeRefreshLayout 配合fragment 下拉刷新的使用,超级简单

前台demo <android.support.v4.widget.SwipeRefreshLayout android:layout_width="match_parent" android:id="@+id/swipe_container" android:layout_height="wrap_content" > <ListVie...

实现在GET请求下调用WCF服务时传递对象(复合类型)参数

WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章《实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法》、《实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法》,在此就不作重述。...