web-dev-qa-db-ja.com

Gsonライブラリを使用してオブジェクトのJSON配列を逆シリアル化する方法は?

Gsonライブラリを使用してオブジェクトのJSON配列を逆シリアル化しようとしているときに、問題が発生します。

JSON配列の例:

[
    {"ID":1,"Title":"Lion","Description":"bla bla","ImageURL":"http:\/\/localhost\/lion.jpg"},
    {"ID":1,"Title":"Tiger","Description":"bla bla","ImageURL":"http:\/\/localhost\/tiger.jpg"}
]

どう思いますか?このようなJSON応答を逆シリアル化するための適切なJavaコードは何ですか?

16
Nashwan Doaqan

JSONArrayを逆シリアル化するには、TypeTokenを使用する必要があります。詳細については、 GSONユーザーガイド を参照してください。コード例:

@Test
public void JSON() {
    Gson gson = new Gson();
    Type listType = new TypeToken<List<MyObject>>(){}.getType();
    // In this test code i just shove the JSON here as string.
    List<Asd> asd = gson.fromJson("[{'name':\"test1\"}, {'name':\"test2\"}]", listType);
}

JSONArrayをお持ちの場合は、

...
JSONArray jsonArray = ...
gson.fromJson(jsonArray.toString(), listType);
...
47
Kirstein