java - 将 java 对象转换为 json 字符串后将未分配的值设置为 NULL
问题描述
我有一个以下示例用户类。
@JsonInclude(JsonInclude.Include.ALWAYS)
public class Employee {
@JsonProperty("FirstName")
private String FirstName;
@JsonProperty("LastName")
private String LastName;
@JsonProperty("MiddleName")
private String MiddleName;
@JsonProperty("Address")
private String Address;
// Getter-setter methods for above fields
}
我有一个以下对象。
Employee emp = new Employee();
emp.setFirstName("F_Name");
emp.setLastName("L_Name");
现在我必须将给定的Employee对象转换为 json 字符串。但是在将给定对象转换为 json 字符串时,我需要将未确定的值(即未设置的值)设置为null
前任。在上面的例子中,我没有设置MiddleName和Address所以我应该得到下面的输出
{"FirstName":"F_Name","LastName":"L_Name", "MiddleName":null,"Address":null}
我尝试了以下方法来实现这一点
1)通过使用杰克逊库
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(emp));
但我得到低于结果
{"address":null,"firstName":"F_Name","lastName":"L_Name","middleName":null,"FirstName":"F_Name","LastName":"L_Name","MiddleName":null,"Address":null}
在 json 字符串中的这个重复值中。
2) 通过使用 Gson 库
System.out.println(new Gson().toJson(emp));
我的输出低于
{"FirstName":"F_Name","LastName":"L_Name"}
在这个 gson 库中,忽略未确定的值。
那么如何将未确定的值(即未设置的值)设置为null
解决方案
推荐阅读
- google-maps - 将谷歌地图图层添加到底图库 arcgis 3.32
- wowza - 我可以使用 Wowze 中的模块将多个线程合二为一吗?
- ios - 如何在 ARKit 中显示 MKMapView?
- vuejs2 - Vue Hooper 变异属性
- python - 无法写入文件,即使我有权这样做在 Python 中
- c# - 没有 ChildContent 的 Blazor 刷新组件
- python - 从测试文件中读取详细信息(员工 ID)并传输到 Excel 表
- python - <__main__.Find_Adj_node object at 0x0DE643E8> ,在 def 函数下调用的类
- android - 无法保存 json.decode 以在颤动中共享首选项
- php - laravel migrate 中途卡住时恢复