2

次の JSON 応答があるとします。

{
    "status": "OK",
    "regions": [
        {
            "id": "69",
            "name": "North Carolina Coast",
            "color": "#01162c",
            "hasResorts": 1
        },
        {
            "id": "242",
            "name": "North Carolina Inland",
            "color": "#01162c",
            "hasResorts": 0
        },
        {
            "id": "17",
            "name": "North Carolina Mountains",
            "color": "#01162c",
            "hasResorts": 1
        },
        {
            "id": "126",
            "name": "Outer Banks",
            "color": "#01162c",
            "hasResorts": 1
        }
    ]
}

Region オブジェクトのリストを作成しようとしています。これが私の現在のコードの非常に要約されたバージョンです:

JSONObject jsonObject = new JSONObject(response);
String regionsString = jsonObject.getString("regions");                             
Type listType = new TypeToken<ArrayList<Region>>() {}.getType();                                
List<Region> regions = new Gson().fromJson(regionsString, listType);  

これはすべて正常に機能しています。ただし、hasResorts == 0 である最終的な List のリージョンを除外したいと思います。各リージョンで fromJSON を呼び出す前に、実際の JSONObjects をループしてチェックできることがわかりました。しかし、これを行うGSON固有の方法があると思います。

私は ExclusionStrategy() を見ていました。これを JSON デシリアライゼーションに実装する簡単な方法はありますか?

4

1 に答える 1