次の 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 デシリアライゼーションに実装する簡単な方法はありますか?