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

flexjson 1.9.2 下

List list = new JSONDeserializer>().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 回答