我正在尝试转换JSON http://www.json.org/到 Java 对象。当一对的某个值是null
,应该设置一些默认值。
这是我的POJO https://en.wikipedia.org/wiki/Plain_Old_Java_Object:
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;
}
}
JSON 对象示例:
{
"rollNo":"123", "name":"Tony", "school":null
}
所以如果学校是null
,我应该将其设为默认值,例如"school":"XXX"
。我该如何配置这个Gson https://github.com/google/gson反序列化对象时?
If the null
在 JSON 中,Gson 将覆盖您在 POJO 中设置的任何默认值。你could不厌其烦地创建一个定制解串器 https://google.github.io/gson/apidocs/com/google/gson/TypeAdapter.html,但在这种情况下这可能有点过分了。
我认为最简单的(并且可以说是最好的考虑到你的用例)要做的事情相当于延迟加载 https://en.wikipedia.org/wiki/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;
}
Note:该解决方案的一个大问题是,为了更改默认值,您必须更改代码。如果您希望可以自定义默认值,则应该使用上面链接的自定义解串器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)