E.g。
[{
'name': 'Foo',
'distance': 2
},{
'name': 'Bar'
}]
这将解析为此类的对象列表:
class City {
public String name;
public int distance;
}
但是对于Bar,city对象不具有distance属性。我可以检查类似我检查对象的类型吗?像:
if(city.distance)
如何检查距离是否已设定?
答案 0 :(得分:2)
Gson gson = new Gson();
City city = gson.fromJson(json, City.class);
Custom parse classes are allowed with GSON。只需使用Integer
代替int
并检查空值。
请记住,您必须使用void构造函数创建City
类:
public class City {
public Integer distance;
public String name;
public City() {/*void constructor*/}
public Integer getDistance() {
return distance;
}
public void setDistance(Integer distance) {
this.distance = distance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
使用null
city.getDistance()==null
答案 1 :(得分:0)
您可以使用Integer而不是int,并检查它是否为null。对于其他属性也可以这样做,使用类而不是原始类型。