JSON マッピング ライブラリの単純なファサードを作成しています。デフォルトの実装では GSON を使用していますが、問題が発生しました。私はこれに似たクラスを定義しました:
public class QueryResult<T> {
private List<T> results;
private String nextOffset;
public List<T> getResults() { return results; }
public void setResults(List<T> results) { this.results = results; }
public String getNextOffset() { return nextOffset; }
public void setNextOffset(String nextOffset) { this.nextOffset = nextOffset; }
}
そして、それで次のようなことをしたいと思います:
public <T> QueryResult<T> fromJsonQuery(String string, Class<T> clazz) {
Type type = new TypeToken<QueryResult<T>>() {}.getType();
return gson.fromJson(string, type);
}
ただし、このメソッドを呼び出すたびにエラーが発生します。
QueryResult<Foo> qr = mapper.fromJsonQuery(json, Foo.class);
for (Foo foo : qr.getResults()) {
System.out.println(foo.toString());
}
java.lang.ClassCastException: com.google.gson.internal.StringMap cannot be cast to example.Foo
どんな助けでも大歓迎です。ありがとう。