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}
  • 相关阅读:
    单例
    ASIHttpRequest加载网络数据和上传数据功能
    JSONModel
    KVC/KVO
    C中的动态内存分配和释放(free)
    IOS开发中Xcode一些使用技巧,快捷键的使用
    Struts2文件上传
    Struts2的输入校验
    struts2类型转换中的错误处理
    struts2自定义类型转换器
  • 原文地址:https://www.cnblogs.com/tu13/p/java_springboot_entity_ignorenullproperty.html
Copyright © 2011-2022 走看看