Gson 序列化NULL值

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1112)   2023-03-28 11:29:14

前言

在Gson中实现的默认行为是忽略空对象字段。例如,如果在Employee对象中,我们不指定电子邮件(即电子邮件是null),那么电子邮件将不是序列化JSON输出的一部分。
Gson忽略空字段,因为此行为允许更紧凑的JSON输出格式。
GSON

1.如何在序列化期间允许空值

要配置GSON实例来输出null,我们必须使用serializeNulls()GsonBuilder对象。
Gson gson = new GsonBuilder()
        .serializeNulls()
        .create();

2.演示

让我们看一下Gson的行为,同时启用或禁用空字段序列化。
这是员工类,有四个字段。我们将电子邮件字段设置为'null'
$title(Employee.java)
public class Employee
{
    private Integer id;
    private String firstName;
    private String lastName;
    private String email;
}

2.1。不要序列化空字段

JSON输出中没有空值的默认Gson序列化。
$title(Main.java)
Employee employeeObj = new Employee(1, "Lokesh", "Gupta", null);
                 
Gson gson = new GsonBuilder()
        .setPrettyPrinting()
        .create();
 
System.out.println(gson.toJson(employeeObj));
运行输出结果为:
{
  "id": 1,
  "firstName": "Lokesh",
  "lastName": "Gupta"
}

2.2。序列化空字段

自定义Gson序列化,JSON输出中包含空值。
$title(Main.java)
Employee employeeObj = new Employee(1, "Lokesh", "Gupta", null);
                 
Gson gson = new GsonBuilder()
        .setPrettyPrinting()
        .serializeNulls()
        .create();
 
System.out.println(gson.toJson(employeeObj));
执行输出结果:
{
  "id": 1,
  "firstName": "Lokesh",
  "lastName": "Gupta",
  "emailId": null
}
显然,null字段在JSON输出中被序列化。
标签: GSON NULL Java
地址:https://www.leftso.com/article/651.html

相关阅读

前言在Gson中实现的默认行为是忽略空对象字段
       学习使用Gson JsonReader类,这是一个基于拉的流式JSON解析器,它有助于将JSON作为标记流来读取​GSON1. JsonReader是什么JsonReader是流式...
前言学习使用Google GSON库将Java对象序列化为JSON表示形式,并将JSON字符串反序列化为等效的Java对象
前言在这个Gson @SerializedName示例中,学习在序列化和反序列化过程中更改json和java对象之间的字段名称
前言值得一提的是JSON只有数组数据类型
MySQL查询中null转0
spring boot项目运行单元测试失败,报错Could not load TestContextBootstrapper [null]. Specify @BootstrapWith's '...
Java通过sourceafis比对指纹图片的相似度判断指纹,sourceafis,Java指纹图片
java编程之java jwt token使用,autho0的Java-jwt框架使用,java编程,java-jwt
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端