zoukankan      html  css  js  c++  java
  • springboot json返回null问题处理

    在开发过程中,我们需要统一返回前端json格式的数据,但有些接口的返回值存在 null或者""这种没有意义的字段。以上不仅影响理解,还浪费带宽,这时我们可以统一做一下处理:不返回空字段,或者把NULL转成“”。

    要做要以上,经过网上寻找资料,发现很多文章都是相互拷贝,于是从网上自己寻找资料,对他们进行整理,记录,同时可以对返回的null字段进行灵活配置。

    spring 内置的json处理框架是Jackson。我们可以对它配置一下达到目的,具体代码如下.

    @Configuration
    public class JacksonConfig
    {
        @Bean
        @Primary
        @ConditionalOnMissingBean(ObjectMapper.class)
        public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
        {
            ObjectMapper objectMapper = builder.createXmlMapper(false).build();
     
            // 通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化
            // Include.Include.ALWAYS 默认
            // Include.NON_DEFAULT 属性为默认值不序列化
            // Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量
            // Include.NON_NULL 属性为NULL 不序列化,就是为null的字段不参加序列化
            //objectMapper.setSerializationInclusion(Include.NON_EMPTY);
     
            // 字段保留,将null值转为""
            objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
        {
            @Override
            public void serialize(Object o, JsonGenerator jsonGenerator,
                                  SerializerProvider serializerProvider)
                    throws IOException, JsonProcessingException
            {
                jsonGenerator.writeString("");
            }
        });
            return objectMapper;
        }
    }
    参考文章:
    https://blog.csdn.net/kokjuis/article/details/78830314
  • 相关阅读:
    synchronized优化手段:锁膨胀、锁消除、锁粗化和自适应自旋锁...
    synchronized 优化手段之锁膨胀机制!
    synchronized 加锁 this 和 class 的区别!
    SpringBoot中时间格式化的5种方法!
    阿里云ddns shell 脚本
    adb 备份apk
    paddlex_gui_win10(飞浆)
    cuda 版本对照
    PaddleHub
    yum 查找库对应的包
  • 原文地址:https://www.cnblogs.com/peijie-tech/p/10083390.html
Copyright © 2011-2022 走看看