多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Gson - 序列化`NULL`值 > 原文: [https://howtodoinjava.com/gson/serialize-null-values/](https://howtodoinjava.com/gson/serialize-null-values/) Gson 中实现的默认行为是**空对象字段被忽略**。 例如,如果在`Employee`对象中未指定电子邮件(即电子邮件为`null`),则电子邮件将不会成为序列化 JSON 输出的一部分。 Gson 会忽略`null`字段,因为此行为允许使用更紧凑的 JSON 输出格式。 ## 1.如何在序列化期间允许空值 要配置 Gson 实例以输出`null`,我们必须使用[`GsonBuilder`](https://howtodoinjava.com/gson/gson-gsonbuilder-configuration/)对象的`serializeNulls()`。 ```java Gson gson = new GsonBuilder() .serializeNulls() .create(); ``` ## 2.演示 让我们看看启用或禁用空字段序列化时 Gson 的行为。 这是员工类,具有四个字段。 我们将电子邮件字段设置为`'null'`。 ```java public class Employee { private Integer id; private String firstName; private String lastName; private String email; } ``` #### 2.1 不要序列化空字段 默认 Gson 序列化,JSON 输出中不包含空值。 ```java Employee employeeObj = new Employee(1, "Lokesh", "Gupta", null); Gson gson = new GsonBuilder() .setPrettyPrinting() .create(); System.out.println(gson.toJson(employeeObj)); ``` ```java { "id": 1, "firstName": "Lokesh", "lastName": "Gupta" } ``` #### 2.2 序列化空字段 自定义 Gson 序列化,JSON 输出中包含空值。 ```java Employee employeeObj = new Employee(1, "Lokesh", "Gupta", null); Gson gson = new GsonBuilder() .setPrettyPrinting() .serializeNulls() .create(); System.out.println(gson.toJson(employeeObj)); ``` ```java { "id": 1, "firstName": "Lokesh", "lastName": "Gupta", "emailId": null } ``` 显然`null`字段已在 JSON 输出中序列化。 向我提供有关此 *Gson 序列化`NULL`值*文章的问题。 学习愉快! 参考: [Gson 用户指南](https://github.com/google/gson/blob/master/UserGuide.md)