zoukankan      html  css  js  c++  java
  • java对象json序列化时忽略值为null的属性

    环境:

    jdk: openjdk11

    操作系统: windows 10教育版1903

    目的:

      如题,当一个对象里有些属性值为null 的不想参与json序列化时,可以添加如下注解

    import com.fasterxml.jackson.annotation.JsonInclude;
    import com.fasterxml.jackson.annotation.JsonIgnore;

    //这个是类注解,表示该类实例化的对象里,值为null的字段不参与序列化
    @JsonInclude(JsonInclude.Include.NON_NULL) @Setter @Getter
    public class AbilityEntity { private Long id; private String name;
      //JsonIgnore注解 表示 每次json理都忽略createTime
      @JsonIgnore
      private Long createTime;//unix时间,ms
    }

    以下是单元测试(DemoApplicationTests.java):

    package com.example.demo;
    
    import com.alibaba.fastjson.JSONObject;
    import com.fasterxml.jackson.annotation.JsonInclude;
    import lombok.Getter;
    import lombok.Setter;
    import org.junit.jupiter.api.Test;
    import org.springframework.boot.test.context.SpringBootTest;
    
    @SpringBootTest
    class DemoApplicationTests {
    
        @Test
        void contextLoads() {
            AbilityEntity ability = new AbilityEntity();
            ability.setId(1L);
            System.out.println(JSONObject.toJSON(ability));
            ability.setName("");//只要不是null, 都不会被忽略
            System.out.println(JSONObject.toJSON(ability));
    
        }
    
        @JsonInclude(JsonInclude.Include.NON_NULL)
        @Setter
        @Getter
        public class AbilityEntity{
            private Long id;
            private String name;
        }
    
    }

    console

    {"id":1}
    {"name":"","id":1}
  • 相关阅读:
    day16(链表中倒数第k个结点)
    day15(C++格式化输出数字)
    day14(调整数组顺序使奇数位于偶数前面 )
    day13(数值的整数次)
    day12(二进制中1的个数)
    day11(矩形覆盖)
    day10(跳台阶)
    hadoop 又一次环境搭建
    Hive 学习
    hadoop -工具合集
  • 原文地址:https://www.cnblogs.com/tu13/p/java_springboot_entity_ignorenullproperty.html
Copyright © 2011-2022 走看看