3

次のjsonを逆シリアル化しようとしています:

{ "books": [ {"id":"1","name":"book 1"}, {"id":"2","name":"book 2"} ] }

リストに。以前はこのjsonで機能していました:

[ {"id":"1","name":"book 1"}, {"id":"2","name":"book 2"} ] }

このコードの使用:

List<Book> items = new JSONDeserializer<ArrayList<Book>>()
.use("values", Book.class).deserialize(json, ArrayList.class);

しかし、複数の例を見た後、私は途方に暮れていますが、リストに直接逆シリアル化することは可能ですか?

4

4 に答える 4

3

@vikkeからサンプルを取得して、longのリストの逆シリアル化を正常に適用しました。

List<Long> idsLong = new JSONDeserializer<List<Long>>().use("values", Long.class).deserialize("[123,456,789]");
于 2013-03-29T20:46:02.810 に答える
1

許容できる解決策を見つけたと思いますが、それがどれほど最適かはわかりません。

List<Book> items = new JSONDeserializer<Map<String,List<Book>>>().
use("values.values", Book.class).deserialize(json, Map.class).get("books");

本のリストになります。誰かがもっと「適切な」解決策を持っているかもしれないなら、コメントしてください。

于 2012-08-14T19:09:00.210 に答える
1

以下のflexjson1.9.2の下で

リストリスト=newJSONDeserializer>()。use(null、ArrayList.class).use( "values"、Long.class).deserialize(episodeIds); System.out.println(リスト);

于 2015-11-13T00:01:15.067 に答える
-3

これを試して。それは私と一緒に働いています。

JavaScriptSerializer jss = new JavaScriptSerializer();

List<Book> lstBook = jss.Deserialize<List<Book>>("your string");
于 2012-08-13T19:46:17.527 に答える