博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jackson实体转json时 为NULL不参加序列化的汇总
阅读量:7041 次
发布时间:2019-06-28

本文共 1483 字,大约阅读时间需要 4 分钟。

首先加入依赖

com.google.code.gson
gson

方法一、实体上使用 @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   不序列化

使用之前

使用之后

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

spring:   jackson:        default-property-inclusion: non_null

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

@Testpublic  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 放在该属性上

转载地址:http://akxal.baihongyu.com/

你可能感兴趣的文章
Android调用系统的Activity、ContentProvider、Service、Broadcast Receiver
查看>>
对象池模式
查看>>
Android学习笔记(四十):Preference的使用
查看>>
ByteArrary(优化数据存储和数据流)
查看>>
围住神经猫,朋友圈瞬间爆红是如何炼成的?
查看>>
HDUoj-------(1128)Self Numbers
查看>>
huffman编码——原理与实现
查看>>
php curl获取网页内容乱码和获取不到内容的解决方法
查看>>
【JavaScript】关于prototype
查看>>
普通Jquery的ajax判断重复和formvalidator的ajaxValidator区别
查看>>
ovs处理openflow消息的流程
查看>>
精品素材:WALK & RIDE 单页网站模板下载
查看>>
大数运算
查看>>
Android开发学习笔记-SharedPreferences的用法
查看>>
JAVA & JSON详解
查看>>
Mac显示隐藏文件的终端命令
查看>>
Spring MVC controller间跳转 重定向 传参 (转)
查看>>
再破博客园登录
查看>>
Entity Framework在WCF中序列化的问题
查看>>
OpenCL快速入门
查看>>