/**
* @author caijunhui
* @since 2017/5/25
*/
public classNullStringJsonSerializerextendsJsonSerializer{
public static finalNullStringJsonSerializerINSTANCE=newNullStringJsonSerializer();
@Override
public voidserialize(Objectvalue,JsonGeneratorgen,SerializerProviderserializers)throwsIOException{
if(value==null){
gen.writeString("");
}else{
gen.writeObject(value);
}
}
@Override
publicClasshandledType(){
returnObject.class;
}
}
/**
* @author caijunhui
* @since 2017/5/25
*/
public classNullArrayJsonSerializerextendsJsonSerializer{
public static finalNullArrayJsonSerializerINSTANCE=newNullArrayJsonSerializer();
@Override
public voidserialize(Objectvalue,JsonGeneratorgen,SerializerProviderserializers)throwsIOException{
if(value==null){
gen.writeStartArray();
gen.writeEndArray();
}else{
gen.writeObject(value);
}
}
@Override
publicClasshandledType(){
returnObject.class;
}
}
public classCustomSerializerProviderextendsDefaultSerializerProvider{
publicCustomSerializerProvider(){
super();
}
publicCustomSerializerProvider(SerializerProvidersrc,SerializationConfigconfig,SerializerFactoryf){
super(src,config,f);
}
@Override
publicDefaultSerializerProvidercreateInstance(SerializationConfigconfig,SerializerFactoryjsf){
return newCustomSerializerProvider(this,config,jsf);
}
@Override
publicJsonSerializerfindNullValueSerializer(BeanPropertyproperty)throwsJsonMappingException{
JavaTypetype=property.getType();
if(type.getRawClass().equals(String.class)){
returnNullStringJsonSerializer.INSTANCE;
}
if(type.isArrayType()||type.isCollectionLikeType()){
returnNullArrayJsonSerializer.INSTANCE;
}
return super.findNullValueSerializer(property);
}
}
public classCustomJackson2ObjectMapperBuilderextendsJackson2ObjectMapperBuilder{
publicCustomJackson2ObjectMapperBuilder(){
super();
}
@SuppressWarnings("unchecked")
@Override
publicTbuild(){
ObjectMapperobjectMapper=super.build();
objectMapper.setSerializerProvider(newCustomSerializerProvider());
return(T)objectMapper;
}
}
@Configuration
public classJacksonConfig{
@Bean
Jackson2ObjectMapperBuilderjackson2ObjectMapperBuilder(){
return newCustomJackson2ObjectMapperBuilder();
}
}
Spring Boot 定制Jackson输出,替换String null 为 empty String, 集合为[]
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- org.springframework.beans.factory.UnsatisfiedDependencyEx...
- 问题 在写返回json格式数据的接口时候:1、总会需要将Date转换为比如yyyy-MM-dd HH:mm:ss格...
- 标签(空格分隔): java 请见[博客详解][1] 这里面有一个通用的方法,判断字符串是否为空,集合是否为空,数...
- 还是使用上次的工程pom.xml中引入依赖 application.yml新增配置 启动redis服务 默认端口...