2014-09-24 88 views
-4

E.g.檢查java中是否存在對象屬性

[{ 
    'name': 'Foo', 
    'distance': 2 
},{ 
    'name': 'Bar' 
}] 

這將解析到這個類的對象的列表:

class City { 
    public String name; 
    public int distance; 
} 

不過對於酒吧我市對象不會有距離屬性。我可以檢查類型,如我將檢查對象嗎?如:

if(city.distance) 

如何檢查距離是否設置?

+0

''如果 – 2014-09-24 12:39:11

+1

嗯...這取決於解析器......如果解析器決定將距離設置爲0 ......但我懷疑它會成功地產生一個'int'' null'。 – 2014-09-24 12:39:43

+0

@dystroy像我說的那樣,解析器不會將它設置爲0. – 2014-09-24 12:40:08

回答

2
Gson gson = new Gson();  
City city = gson.fromJson(json, City.class); 

Custom parse classes are allowed with GSON。只需使用Integer而不是int並檢查空值。

請記住,你必須創建一個City類與空的構造函數:(!距離= NULL)

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

+0

+1謝謝你,試過這個,它的工作原理! – 2014-09-24 12:53:39

0

您可以使用Integer而不是int,並檢查它是否爲null。對於其他屬性也可以做到這一點,使用類而不是原始類型。