java – 使用gson反序列化时将默认值设置为变量
发布时间:2020-12-14 05:32:55 所属栏目:Java 来源:网络整理
导读:我正在尝试将 JSON转换为Java对象.当一对的某个值为空时,应该设置一些默认值. 这是我的POJO: public class Student { String rollNo; String name; String contact; String school; public String getRollNo() { return rollNo; } public void setRollNo(St
我正在尝试将
JSON转换为Java对象.当一对的某个值为空时,应该设置一些默认值.
这是我的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; } } JSON对象示例 { "rollNo":"123","name":"Tony","school":null } 所以如果学校是空的,我应该把它变成一个默认值,比如“学校”:“XXX”.在反序列化对象时,如何配置Gson? 解决方法
如果null在JSON中,Gson将覆盖您可能在POJO中设置的任何默认值.你可以去创造一个
custom deserializer的麻烦,但是在这种情况下可能是过度的.
我认为最简单(并且可以说是最适合你的用例)的事情是相当于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; } 注意:这个解决方案的大问题是为了更改默认值,您必须更改代码.如果您希望默认值可自定义,则应该使用上面链接的自定义解串器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |