我正在使用gson将JSON转换为我的POJO。如果我没有在JSON中传递特定参数(整个参数,而不仅仅是值),它将自动初始化为null。 当我将该参数值传递为null时,是否有办法找出上述null和得到的null之间的区别。
P.S。我无法将默认转换从JSON更改为POJO
答案 0 :(得分:0)
在您的课程中使用默认值。如果该字段未传递json字符串,则该值为默认值。示例代码如下。
public class User {
private String name;
private String age="not set";
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class GsonClient {
public static void main(String[] args) {
String usersJson = "[ { \"name\": \"henry\" }, { \"name\": \"justin\",\"age\":null } ]";
Gson gson = new GsonBuilder().serializeNulls().create();
User[] usersWithAge = gson.fromJson(usersJson, User[].class);
for (User user : usersWithAge) {
System.out.println(user);
}
}
}
输出在这里
User{name='henry', age=not set}
User{name='justin', age=null}
答案 1 :(得分:0)
Object.keys(theObject)将包含键。另外,Object.hasOwnProperty(...)也会让您知道。
因此,将JSON转换为对象并检查键,以查看该值是否被编组为未定义,空值或不存在。