/**
* @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服务 默认端口...