jackson实体转json时 为NULL不参加序列化的汇总

时间:2023-02-03 17:01:44

首先加入依赖

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>

方法一、实体上使用 @JsonInclude(JsonInclude.Include.NON_NULL)

1、如果放在属性上,如果该属性为NULL则不参与序列化 ;

2、如果放在类上,那对这个类的全部属性起作用 ;

参数意义:

  • JsonInclude.Include.ALWAYS              默认
  • JsonInclude.Include.NON_DEFAULT     属性为默认值不序列化
  • JsonInclude.Include.NON_EMPTY         属性为 空(””) 或者为 NULL 都不序列化
  • JsonInclude.Include.NON_NULL           属性为NULL   不序列化

使用之前

jackson实体转json时 为NULL不参加序列化的汇总

使用之后

jackson实体转json时 为NULL不参加序列化的汇总

方法二、 如果不想每次都这样添加,可以在application.yml配置全局定义, 这种默认都生效

spring:

   jackson:

        default-property-inclusion: non_null

方法三、通过ObjectMapper 对象进行设置,下面是测试用例

@Test
public void test() throws JsonProcessingException {
ResultVo resultVo = new ResultVo();
resultVo.setCode(0);
resultVo.setMsg("成功"); ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);//默认
String json = mapper.writeValueAsString(resultVo);
System.out.println(json); mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); //属性为NULL不序列化
json = mapper.writeValueAsString(resultVo);
System.out.println(json); Map map = new HashMap();
map.put("code",0);
map.put("msg","成功");
map.put("data",null);
json = mapper.writeValueAsString(map);
System.out.println(json);
}

打印如下:

{"code":0,"msg":"成功","data":null}
{"code":0,"msg":"成功"}
{"msg":"成功","code":0,"data":null}

注意:ObjectMapper 只对VO起作用;对Map List不起作用

1、如果必定返回的字段,可以在实体类一开始就给默认值(如字符串 ”” ; list [] ),来避免null

2、jackson实体转json时,某个属性不参加序列化时 使用@JsonIgnore 放在该属性上

jackson实体转json时 为NULL不参加序列化的汇总的更多相关文章

  1. &commat;JsonInclude&lpar;Include&period;NON&lowbar;NULL&rpar; resttemplate 传递实体参数时 序列化为json时 空字符串不参与序列化

    @JsonInclude(Include.NON_NULL) resttemplate 传递实体参数时 序列化为json时 空字符串不参与序列化 https://www.cnblogs.com/sup ...

  2. jackson 实体转json 为NULL或者为空不参加序列化

    1.实体上 @JsonInclude(Include.NON_NULL) //将该标记放在属性上,如果该属性为NULL则不参与序列化 //如果放在类上边,那对这个类的全部属性起作用 //Include ...

  3. jackson 实体转json 为NULL或者为空不参加序列化【转载】

    原博客:https://www.cnblogs.com/yangy608/p/3936848.html 1.实体上 /** * 将该标记放在属性上,如果该属性为NULL则不参与序列化 * 如果放在类上 ...

  4. FastJson生成json时&comma;显示Null属性

    FastJson生成json时,默认不会输出null字段. 移动端,有时候,需要后端提供完整的字段说明. Map < String , Object > jsonMap = new Has ...

  5. EF 序列化实体为Json时的循环引用问题&lpar;不用自己写实体&comma;不用匿名类型&comma;不用EF的上下文属性&rpar;

    自己写实体可以完美解决这个问题.(支持时间格式自定义) 用匿名类型也可以. 设置上下文方法如下: (jz为数据库上下文对象) jz.Configuration.ProxyCreationEnabled ...

  6. 记一次接口调试错误: &lbrace;&quot&semi;timestamp&quot&semi;&colon;&quot&semi;2019-09-11T03&colon;04&colon;30&period;036&plus;0000&quot&semi;&comma;&quot&semi;status&quot&semi;&colon;500&comma;&quot&semi;error&quot&semi;&colon;&quot&semi;Internal Server Error&quot&semi;&comma;&quot&semi;message&quot&semi;&colon;&quot&semi;Could not write JSON&colon; Object is null&semi; nested exception is com&period;fasterxml&period;jackson

    接口测试中用postman测试返回是正常的,但是使用其他人去调用就出错了,找了半天,才想起来使用了nginx,用于端口的代理转发.然后根据错误信息发现json格式的某个字段为null,结合日志中的报文 ...

  7. c&num;使用 Newtonsoft&period;Json 将entity转json时,忽略为null的属性

    c#使用 Newtonsoft.Json 将entity转json时,忽略为null的属性,直接在属性上加下面的特性 [JsonProperty(NullValueHandling=NullValue ...

  8. spring boot &commat;ResponseBody转换JSON 时 Date 类型处理方法,Jackson和FastJson两种方式&comma;springboot 2&period;0&period;9配置fastjson不生效官方解决办法

    spring boot @ResponseBody转换JSON 时 Date 类型处理方法 ,这里一共有两种不同解析方式(Jackson和FastJson两种方式,springboot我用的1.x的版 ...

  9. jackson实体为NULL或者为空不显示

    1.实体上 @JsonInclude(JsonInclude.Include.NON_NULL) 将该注解放在属性上,如果该属性为null则不参与序列化: 如果放在类上边,那对这个类的全部属性起作用 ...

随机推荐

  1. hadoop 笔记(zookeeper)

    1.安装 需要提前安装java环境,本文下载zookeeper-3.3.6.tar.gz包. 1.1 tar -zxvf zookeeper-3.3.6.tar.gz 1.2 修改conf中的zoo_ ...

  2. Shell 的变量功能

    搜寻路径PATH(系统预设变量) 执行命令时,系统透过PATH得路径顺序搜寻指令,如果再搜寻完后还找不到该指令,就会打印错误讯息[command not fount].   环境变量 进入shell之 ...

  3. hdu 4045 2011北京赛区网络赛F 组合数&plus;斯特林数 &ast;&ast;&ast;

    插板法基础知识 斯特林数见百科 #include<iostream> #include<cmath> #include<cstdio> #include<cs ...

  4. hdu-5495 LCS&lpar;置换&rpar;

    题目链接: LCS Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  5. 2016CCPC 中南地区邀请赛 A 矩阵快速幂

    A A^n=A^(n%2016)%7; #include <iostream> #include <cstdio> #include <cstring> #incl ...

  6. 墙裂推荐 iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  7. python13&lowbar;day4

    上周复习 1,python基础 2,基本数据类型 3,函数式编程 函数式编程.三元运行.内置函数.文件处理 容易出问题的点 函数默认返回值为none,对于列表字典,传入引用. 1 2 3 4 5 6 ...

  8. 用java写一个用户登陆界面

    一.课堂测试源代码及其结果截图 用java的swing写一个用户登录界面,采用网格布局.源代码如下: /** * */package LiuLijia; import java.awt.CardLay ...

  9. 你用&period;NET开发APP时,在云平台打包APP要填个&OpenCurlyDoubleQuote;包名”的含义

    ios 在ios平台,包名有它专有的名词:bundle ID.bundle ID可以翻译成包ID,也可以叫APP ID或者应用ID,他是每一个ios应用的全球唯一标识,只要bundle id不变,无论 ...

  10. Fiddler 抓包工具入门

    转自:https://www.cnblogs.com/yyhh/p/5140852.html 序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操 ...