码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-10-12 01:02:42      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:images   abs   throw   全局   cep   htm   png   tco   number   

首先加入依赖
<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   不序列化

使用之前

技术分享

使用之后

技术分享

方法二、 如果不想每次都这样添加,可以在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);
    }

打印如下:

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




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

标签:images   abs   throw   全局   cep   htm   png   tco   number   

原文地址:http://www.cnblogs.com/weiapro/p/7653443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!