springboot响应json null值过滤方式

目录
  • springboot响应json null值过滤
  • springboot处理返回json的null值
    • 1、新建配置类(JsonConfig.java)
    • 2、在启动类Application中

springboot响应json null值过滤

spring:
  jackson:
    default-property-inclusion: non_null

只需要在application.yml中配置以上内容即可。

springboot处理返回json的null值

在后端数据接口项目开发中,经常遇到返回的数据中有null值,导致前端需要进行判断处理,否则容易出现undefined的情况,如何便捷的将null值转换为空字符串?

以SpringBoot项目为例,SSM同理。

1、新建配置类(JsonConfig.java)

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import java.io.IOException;
@Configuration
public class JsonConfig {
    @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;
    }
}

2、在启动类Application中

记得添加Scan注解,防止无法扫描到配置类。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • spring boot 下对JSON返回值去除null和空字段操作

    在开发过程中,我们需要统一返回前端json格式的数据,但有些接口的返回值存在 null或者""这种没有意义的字段. 不仅影响理解,还浪费带宽,这时我们可以统一做一下处理,不返回空字段,或者把NULL转成"",spring 内置的json处理框架是Jackson.我们可以对它配置一下达到目的 直接看代码,很简单. /** * 〈返回json空值去掉null和""〉 〈功能详细描述〉 * * @author gogym * @version 2017

  • SpringBoot项目中处理返回json的null值(springboot项目为例)

    在后端数据接口项目开发中,经常遇到返回的数据中有null值,导致前端需要进行判断处理,否则容易出现undefined的情况,如何便捷的将null值转换为空字符串? 以SpringBoot项目为例,SSM同理. 1.新建配置类(JsonConfig.java) import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.f

  • 解决SpringBoot返回结果如果为null或空值不显示处理问题

    SpringBoot返回结果如果为null或空值不显示处理 第一种方法:自定义消息转换器 @Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter{ // /** // * 利用fastjson替换掉jackson // * @param converters // */ @Override public void configureMessageConverters(List<HttpMessageConv

  • springboot2.1.7去除json返回字段中为null的字段

    一般我们会设置返回VO对象的类型为 @Data public class ResponseVO<T> { private Integer status; private String msg; private T data; public ResponseVO(Integer status, String msg) { this.status = status; this.msg = msg; } } 但如果不需要返回泛型T,即泛型T为null就会出现以下字段 { "status&q

  • springboot响应json null值过滤方式

    目录 springboot响应json null值过滤 springboot处理返回json的null值 1.新建配置类(JsonConfig.java) 2.在启动类Application中 springboot响应json null值过滤 spring: jackson: default-property-inclusion: non_null 只需要在application.yml中配置以上内容即可. springboot处理返回json的null值 在后端数据接口项目开发中,经常遇到返回

  • SpringBoot响应Json数据乱码通过配置的解决

    目录 场景 实现 把SpringBoot的response编码设置为utf-8 找到application.properties配置文件 添加如下: #设置响应为utf-8spring.http.encoding.force-response=true 再次刷新浏览器 SpringBoot返回json数据乱码 第一种解决方式 在请求RequestMapping直接设置,只针对请求,在拦截器返回json数据时有可能乱码 @RequestMapping(value ="/user", pr

  • SpringMVC接收与响应json数据的几种方式

    前言 前后端的数据交互,除了通过form表单进行提交外,也可以通过ajax向后端传递和接收json格式数据(这种方式可以实现请求数据和页面分离).本文将总结一下在Spring MVC中接收和响应json数据的几种方式. 话不多说了,来一起看看详细的介绍吧 准备步骤: 1.导入json相关框架的依赖(比如jackson). 2.spring mvc的controller方法正常写,如果需要响应json,增加@responsebody注解. 3.在接受json对应的输入参数前,加上@RequestB

  • SpringBoot项目如何把接口参数中的空白值替换为null值(推荐)

    问题发生 我们公司代码生成的时候,查询列表统一都是使用了setEntity() ,查询写法如下: public List<BasReservoirArea> selectList(BasReservoirArea basReservoirArea) { QueryWrapper<BasReservoirArea> where = new QueryWrapper<>(); where.setEntity(basReservoirArea); return baseMap

  • SpringBoot响应处理之以Json数据返回的实现方法

    目录 一.示例代码 二.返回值解析原理 三.源代码分析(debug) 四.内容协商机制 1. 内容协商 2. 内容协商原理重点源代码 3. HttpMessageConverters消息转换器原理 一.示例代码 访问 localhost:8080/jsonTest —— 返回 json 格式的数据 @Controller public class ResponseTestController { @ResponseBody // 标注 -- 自动返回json数据 @GetMapping("/js

  • MySQL为JSON字段创建索引方式(Multi-Valued Indexes 多值索引)

    目录 多值索引简介 创建多值索引 JSON对象字段索引 JSON数组对象索引 在组合索引中创建多值索引 多值索引的局限 应用场景 多值索引简介 从MySQL 8.0.17 开始, InnoDB支持创建多值索引(Multi-Valued Indexes),该索引是在JSON存储值数组的列上定义的二级索引,对于单个数据记录可以有多个索引记录.此类索引特定的语法定义: CAST(expression AS type ARRAY),例如CAST(data->'$.zipcode' AS UNSIGNED

  • 实例详解JSON取值(key是中文或者数字)方式

    JSON取值(key是中文或者数字)方式详解 先准备一个json对象用于演示 var json = {'name':'zhangsan', '年龄':23, 404:'你可能迷路了'}; 1.使用JS中with关键字 with(json) { console.log(name);//输出:zhangsan console.log(年龄);//输出:23 console.log(404);//输出:404,用这种方法读取key是数字的属性,有问题 } 2.最常见的传统的读取key console.

  • C#中 Json 序列化去掉null值的方法

    要将一个对象序列化,可是如果对象的属性为null的时候,我们想将属性为null的都去掉. 在这里我使用Newtonsoft.Json.dll 记录一下序列化以及反序列化 json字符串转对象 Model model=JsonConvert.DeserializeObject<Model>(val); 将对象转化为json格式字符串 string jsonString = JsonConvert.SerializeObject(obj); 那么如何序列化为json时过滤掉NULL呢?? var

随机推荐