zoukankan      html  css  js  c++  java
  • fastjson数据返回配置

    阿里的fastjson 包升级后,可能导致返回的json 数据,字段为null时不显示等问题

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.9.13</version>
    </dependency>
    @Configuration
    public class FastjsonConfiguration {
    
    
      @Bean
      public HttpMessageConverters fastjsonConverter() {
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        //自定义格式化输出
        fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullNumberAsZero);
    
        FastJsonHttpMessageConverter4 fastjson = new FastJsonHttpMessageConverter4();
        fastjson.setFastJsonConfig(fastJsonConfig);
        return new HttpMessageConverters(fastjson);
      }
    
    }
    SerializerFeature  类的一些枚举值
        WriteMapNullValue,
    
        WriteNullListAsEmpty //  将list的null转成 []
    
        WriteNullStringAsEmpty // 将string的null转成 ""
    
        WriteNullNumberAsZero
    
        WriteNullBooleanAsFalse,
    
        PrettyFormat,
    
        WriteClassName,
    
        WriteDateUseDateFormat,
    
        NotWriteRootClassName,
    
        BeanToArray,
    
        WriteNonStringKeyAsString,
    
        NotWriteDefaultValue,
        
        BrowserSecure,
        
        IgnoreNonFieldGetter,
    
        WriteNonStringValueAsString,
        
    
      

    springMVC 中设置

                <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> 
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html;charset=UTF-8</value>
                            <value>application/json</value>
                        </list>
                    </property>
                    <property name="features">
                        <list>
                            <value>WriteMapNullValue</value>
                            <value>QuoteFieldNames</value>
                        </list>
                    </property>
                   <!--  <property name="dateFormat" value="yyyy-MM-dd HH:mm:ss"/> -->
                </bean>

    2、脱敏设置

    1 ) 自定义 SensentiveField 类 实现  ObjectSerializer,并重写其方法
    2) @JSONField(serializeUsing =SensentiveField.class) 实体类的属性加上 注解

  • 相关阅读:
    spring boot单元测试之七:用mockmvc模拟session(spring boot 2.4.3)
    spring boot单元测试之六:用mockmvc模拟cookie(spring boot 2.4.3)
    sql join 注意事项
    见路不走,即见因果
    presto sql 经典sql 应用
    别拿你的职业去拔高你个人的规格, 让人轻看
    《遥远的救世主》经典台词
    《卜算子·自嘲》
    天道连续剧 丁元英语录
    shell diff + kettle = mail 预警
  • 原文地址:https://www.cnblogs.com/yrjns/p/11766440.html
Copyright © 2011-2022 走看看