春天的引导下对JSON返回值去除零和空字段操作

  

在开发过程中,我们需要统一返回前端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 ()   {   @Override   公共空间序列化对象o, JsonGenerator JsonGenerator,   SerializerProvider SerializerProvider)   抛出IOException, JsonProcessingException   {   jsonGenerator.writeString (" ");   }   });   返回objectmap;   }   }      

<强> 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返回值去除零和空字段操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

春天的引导下对JSON返回值去除零和空字段操作

Copyright © 2020-2023 feiqueyun.cn. All Rights Reserved. 肥雀云_南京肥雀信息技术有限公司版权所有 南京肥雀信息技术有限公司 苏ICP备16063723号-5