首页 > 解决方案 > 将 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

前任。在上面的例子中,我没有设置MiddleNameAddress所以我应该得到下面的输出

{"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

标签: javajson

解决方案


推荐阅读