我正在尝试将JSON转换为Java对象.当一对的某个值是null,它应该设置一些默认值.
这是我的POJO:
public class Student {
String rollNo;
String name;
String contact;
String school;
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
Run Code Online (Sandbox Code Playgroud)
示例JSON对象:
{
"rollNo":"123", "name":"Tony", "school":null
}
Run Code Online (Sandbox Code Playgroud)
因此,如果是学校null,我应该将其变为默认值,例如"school":"XXX".在反序列化对象时如何使用Gson配置它?
dur*_*597 24
如果null它在JSON中,Gson将覆盖您可能在POJO中设置的任何默认值.您可能会遇到创建自定义反序列化器的麻烦,但在这种情况下可能会有点过分.
我认为最简单的(并且可以说是最好的用例)事情就相当于Lazy Loading.例如:
private static final String DEFAULT_SCHOOL = "ABC Elementary";
public String getSchool() {
if (school == null) school == DEFAULT_SCHOOL;
return school;
}
public void setSchool(String school) {
if (school == null) this.school = DEFAULT_SCHOOL;
else this.school = school;
}
Run Code Online (Sandbox Code Playgroud)
注意:此解决方案的一个大问题是,要更改默认值,您必须更改代码.如果您希望自定义默认值,则应使用上面链接的自定义反序列化器.
| 归档时间: |
|
| 查看次数: |
19146 次 |
| 最近记录: |