在开发过程中,我们需要统一返回前端json格式的数据,但有些接口的返回值存在零或者”“这种没有意义的字段。
不仅影响理解,还浪费带宽,这时我们可以统一做一下处理,不返回空字段,或者把零转成",弹簧内置的json处理框架是杰克逊。我们可以对它配置一下达到目的
直接看代码,很简单。
/* * * <返回json空值去掉零和”“> <功能详细描述> * * @author gogym * @version 2017年10月13日 * @see JacksonConfig * @since */@ configuration 公开课JacksonConfig { @ bean @Primary @ConditionalOnMissingBean (ObjectMapper.class) 公共objectmap jacksonObjectMapper (Jackson2ObjectMapperBuilder builder) { objectmap objectmap=builder.createXmlMapper (false) .build ();//通过该方法对映射器对象进行设置,所有序列化的对象都将按改规则进行系列化//Include.Include。总是默认//包含。NON_DEFAULT属性为默认值不序列化//包含。NON_EMPTY属性为空(" ")或者为零都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量//包含。NON_NULL属性为零不序列化,就是为零的字段不参加序列化//objectMapper.setSerializationInclusion (Include.NON_EMPTY);//字段保留,将null值转为”“ objectMapper.getSerializerProvider ()。setNullValueSerializer(新的JsonSerializer
<强> springboot RestController配置fastjson,实体为空时不显示问题强>
Springboot在和fastjson配合使用时,当返回实体为空时拦截不显示问题。在实际业务中,不管返回实体是否为空,都需要显示出来,如果为空则显示null。
解决方案,引入fastjson jar包
& lt; dependency> & lt; groupId> com.alibaba & lt; artifactId> fastjson & lt; version> 1.2.22 & lt;/dependency>
添加配置ResultConfig:
包com.message.config;/* * * @author: zoboy * @Description: * @日期:2019-11-18 29中创建 */进口com.alibaba.fastjson.serializer.SerializerFeature; 进口com.alibaba.fastjson.support.config.FastJsonConfig; 进口com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; 进口org.springframework.boot.autoconfigure.http.HttpMessageConverters; 进口org.springframework.context.annotation.Bean; 进口org.springframework.context.annotation.Configuration; 进口org.springframework.http.MediaType; 进口org.springframework.http.converter.HttpMessageConverter; 进口java.util.ArrayList; 进口并不知道; @ configuration 公开课ResultConfig {/*注入Bean: HttpMessageConverters,以支持fastjson */@ bean 公共HttpMessageConverters fastJsonHttpMessageConverters () { FastJsonHttpMessageConverter fastConvert=new FastJsonHttpMessageConverter (); FastJsonConfig FastJsonConfig=new FastJsonConfig (); fastJsonConfig.setSerializerFeatures (SerializerFeature.PrettyFormat SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullListAsEmpty, SerializerFeature.WriteMapNullValue, SerializerFeature.DisableCheckSpecialChar); fastJsonConfig。setDateFormat (“yyyy-MM-dd hh: mm: ss”);//处理中文乱码问题 List,fastMediaTypes=new ArrayList<的在(); fastMediaTypes.add (MediaType.APPLICATION_JSON_UTF8); fastConvert.setSupportedMediaTypes (fastMediaTypes); fastConvert.setFastJsonConfig (fastJsonConfig); 返回新HttpMessageConverters ((HttpMessageConverter<& # 63;祝辞)fastConvert); } }
结果:
{ “代码”:“0”, “消息”:“成功!” “数据”:零 }
解决问题!
以上这篇春季引导下对JSON返回值去除零和空字段操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。