0

私のAndroidアプリでgsonを使用して次のjsonを解析しようとしていますが、givienの構造ではうまくいきません。

JSON

[
{
    "city": {
        "country": "Canada",
        "id": 1,
        "name": "Toronto",
        "province": "Ontario"
    }
},
{
    "city": {
        "country": "Canada",
        "id": 11,
        "name": "Ajax",
        "province": "Ontario"
    }
}
]

JAVA

public class LocationCityList {

    private List<LocationCityContainer> cities;


    public List<LocationCityContainer> getTrends() {
        return cities;
    }
    public void setTrends(List<LocationCityContainer> cities) {
        this.cities = cities;
    }

}

以下は適切な長さの配列を返しますが、その後、都市オブジェクト自体を取得する方法を理解できません。

Gson gson = new Gson();
Reader r = new InputStreamReader(getJSONData(url));       
LocationCityList[] objs = gson.fromJson(r, LocationCityList[].class);

どんな助けでも大歓迎です。

4

2 に答える 2

1

カンマが多すぎます。このjsonを試してください(オンタリオの後にコンマを削除したことに注意してください):

[
{
    "city": {
        "country": "Canada",
        "id": 1,
        "name": "Toronto",
        "province": "Ontario"
    }
},
{
    "city": {
        "country": "Canada",
        "id": 11,
        "name": "Ajax",
        "province": "Ontario"
    }
}

]

jsonに問題がある場合は、jsonをバリデーターで実行すると便利です。http://jsonlint.com/は優れたリソースです。

于 2012-07-24T22:01:44.087 に答える
0

OKはそれを理解しました。Javaコードは次のようにする必要があります。

public class LocationCityList {

LocationCity city;

public LocationCity getLocationCity(){
    return city;
}   

}

public class LocationCity {
private String name;
private String id;

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}

}

于 2012-07-25T12:42:51.613 に答える