GSON で行うオブジェクトのリストを取得するには
Gson gson = new Gson();
Type token = new TypeToken<List<MyType>>(){}.getType();
return gson.fromJson(json, token);
それはうまく機能しますが、さらに進んでMyTypeをパラメータ化したいので、このコードでオブジェクトのリストを解析する共通の関数を使用できます
// the common function
public <T> List<T> fromJSonList(String json, Class<T> type) {
Gson gson = new Gson();
Type collectionType = new TypeToken<List<T>>(){}.getType();
return gson.fromJson(json, collectionType);
}
// the call
List<MyType> myTypes = parser.fromJSonList(jsonString, MyType.class);
悲しいことに、型ではなく StringMaps の配列を返します。T は、私の型ではなく、別のジェネリック型として解釈されています。回避策はありますか?