iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >springboot怎么配置Jackson返回统一默认值
  • 189
分享到

springboot怎么配置Jackson返回统一默认值

2023-06-20 18:06:31 189人浏览 独家记忆
摘要

这篇文章主要介绍“SpringBoot怎么配置Jackson返回统一默认值”,在日常操作中,相信很多人在springboot怎么配置Jackson返回统一默认值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”s

这篇文章主要介绍“SpringBoot怎么配置Jackson返回统一默认值”,在日常操作中,相信很多人在springboot怎么配置Jackson返回统一默认值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot怎么配置Jackson返回统一默认值”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

项目开发中,我们返回的数据或者对象没有的时候一般直接返回的null

有数据时的返回值

{ "flag": true, "code": "10000", "msg": "成功!", "data": {  "id": 32,  "templateType": 1,  "templateName": "我的测试模板1",  "freightName": "我的测试标题1",  "listArea": [   {    "id": 968,    "templateId": 32,    "freightPrice": 15,   }  ],  "templateDescEntity": {   "id": 1   "name": "xxx"  } }}

没有数据时的返回值

{ "flag": true, "code": "10000", "msg": "成功!", "data": {  "id": 32,  "templateType": 1,  "templateName": null,  "freightName": null,  "listArea": null,  "templateDescEntity": null }}

这种情况下数据返回给前端,前端需要做大量的空值判断
如前端调使用属性data.templateDescEntity.id的时候就会直接报异常
此时我们可以使用返回值统一处理,配置如下

pom.xml添加

<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-annotations</artifactId>    <version>2.9.5</version></dependency><dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId></dependency>

java类添加配置

package com.ys.mall.core.product.config;import com.fasterxml.jackson.core.JSONGenerator;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;import java.lang.reflect.Field;import java.util.Collection;import java.util.List;import java.util.Map;import java.util.Objects;@Configurationpublic class JacksonConfig {    @Bean    @Primary    @ConditionalOnMissingBean(ObjectMapper.class)    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {        ObjectMapper objectMapper = builder.createXmlMapper(false).build();        objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {            @Override            public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {                String fieldName = jsonGenerator.getOutputContext().getCurrentName();                try {                    //反射获取字段类型                    Field field = jsonGenerator.getCurrentValue().getClass().getDeclaredField(fieldName);                    if (CharSequence.class.isAssignableFrom(field.getType())) {                        //字符串型空值""                        jsonGenerator.writeString("");                        return;                    } else if (Collection.class.isAssignableFrom(field.getType())) {                        //列表型空值返回[]                        jsonGenerator.writeStartArray();                        jsonGenerator.writeEndArray();                        return;                    } else if (Map.class.isAssignableFrom(field.getType())) {                        //map型空值 或者 bean对象 返回{}                        jsonGenerator.writeStartObject();                        jsonGenerator.writeEndObject();                        return;                    }                } catch (NoSuchFieldException ignored) {                }                jsonGenerator.writeString("");            }        });        return objectMapper;    }}

添加空值统一处理后的返回值

{ "flag": true, "code": "10000", "msg": "成功!", "data": {  "id": 32,  "templateType": 1,  "templateName": "",  "freightName": "",  "listArea": [],  "templateDescEntity": {} }}

到此,关于“springboot怎么配置Jackson返回统一默认值”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: springboot怎么配置Jackson返回统一默认值

本文链接: https://www.lsjlt.com/news/299014.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot怎么配置Jackson返回统一默认值
    这篇文章主要介绍“springboot怎么配置Jackson返回统一默认值”,在日常操作中,相信很多人在springboot怎么配置Jackson返回统一默认值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”s...
    99+
    2023-06-20
  • springboot配置Jackson返回统一默认值的实现示例
    在项目开发中,我们返回的数据或者对象没有的时候一般直接返回的null 有数据时的返回值 { "flag": true, "code": "10000", "msg": "...
    99+
    2024-04-02
  • springboot默认线程池怎么配置
    在Spring Boot中,可以通过配置文件(application.properties或application.yml)来配置默...
    99+
    2023-10-27
    springboot
  • SpringBoot中怎么统一全局Controller返回值格式
    这期内容当中小编将会给大家带来有关SpringBoot中怎么统一全局Controller返回值格式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、返回值格式统一1.返回值介绍在使用controller对...
    99+
    2023-06-20
  • SpringBoot全局Controller返回值格式统一
    目录一、返回值格式统一1.返回值介绍2.基础类功能3.基础实现二、附录说明一、返回值格式统一 1.返回值介绍 在使用controller对外提供服务的时候,很多时候都需要统一返回值格...
    99+
    2024-04-02
  • SpringBoot怎么统一JSON信息返回
    这篇文章主要介绍“SpringBoot怎么统一JSON信息返回”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么统一JSON信息返回”文章能帮助大家解决问题。调用后端服务后的返回...
    99+
    2023-06-27
  • MySQL怎么设置默认值
    在MySQL中,可以通过以下两种方式设置默认值: 在创建表时设置默认值: 可以在CREATE TABLE语句中为列指定默认值。例...
    99+
    2023-10-24
    MySQL
  • navicat怎么设置默认值
    navicat中设置默认值的方法:1、打开navicat工具;2、连接数据库;3、选择需要设置默认值的数据表;4、右键打开设计表页面;5、选择需要设置默认值的字段;6、最后在底部默认值一栏中进行设置即可。具体操作步骤:打开navicat管理...
    99+
    2024-04-02
  • mysql默认值怎么设置
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-16
  • navicat表怎么设置默认值
    可以通过 navicat 为表设置默认值,该值可以是常量、表达式或序列。具体步骤包括:打开表设计器,找到需要设置默认值的字段,在“默认值”字段中输入默认值,最后保存更改。示例:为“客户”...
    99+
    2024-04-24
    navicat
  • java boolean默认值怎么设置
    在Java中,boolean类型的默认值是false。如果需要设置其他值作为默认值,可以使用Boolean包装类来实现。例如,可以使...
    99+
    2023-09-23
    java
  • mysql datetime默认值怎么设置
    在 MySQL 中,可以通过以下方式为 DATETIME 列设置默认值: CREATE TABLE example_table ( ...
    99+
    2024-03-05
    mysql
  • 关于springboot的接口返回值统一标准格式
    目录一、目标二、为什么要对springboot的接口返回值统一标准格式第一种格式:response为String第二种格式:response为Objct第三种格式:response为...
    99+
    2024-04-02
  • 怎么在SpringBoot中统一api的返回风格
    怎么在SpringBoot中统一api的返回风格?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。例如{ "code": 200,&nb...
    99+
    2023-06-07
  • SpringBoot怎么实现统一后端返回格式
    这篇文章主要介绍“SpringBoot怎么实现统一后端返回格式”,在日常操作中,相信很多人在SpringBoot怎么实现统一后端返回格式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot怎么实...
    99+
    2023-06-30
  • Spring Data JPA怎么设置默认值
    本篇内容主要讲解“Spring Data JPA怎么设置默认值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Data JPA怎么设置默认值”...
    99+
    2023-06-25
  • sql怎么设置默认值为空
    在SQL中,可以在创建表时设置列的默认值为空。具体方法如下:1. 在创建表时,在列的定义后面加上 `DEFAULT NULL`。示例...
    99+
    2023-08-25
    sql
  • antd之RangePicker怎么设置默认值
    本篇内容介绍了“antd之RangePicker怎么设置默认值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!RangePicker设置默认值...
    99+
    2023-07-04
  • angular中怎么设置select 默认值
    这期内容当中小编将会给大家带来有关angular中怎么设置select 默认值,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如下所示:<select ng...
    99+
    2024-04-02
  • sqlserver怎么设置字段默认值
    在SQL Server中,可以使用`DEFAULT`关键字来设置字段的默认值。例如,假设我们有一个名为`users`的表,其中有一个...
    99+
    2023-09-16
    sqlserver
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作