使用Flexjson将JSON列表反序列化为对象列表

时间:2012-08-13 19:28:04

标签: java json serialization flexjson

我正在尝试反序列化以下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 个答案:

答案 0 :(得分:2)

从@vikke中取样我成功应用了长序列表的反序列化。

List<Long> idsLong = new JSONDeserializer<List<Long>>().use("values", Long.class).deserialize("[123,456,789]");

答案 1 :(得分:0)

好的,我认为我找到了一个可接受的解决方案,虽然我不知道它是多么优化

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

会产生一系列书籍。如果有人可能有更“正确”的解决方案,请随时发表评论。

答案 2 :(得分:0)

下面的flexjson 1.9.2

List list = new JSONDeserializer&gt;()。use(null,ArrayList.class).use(“values”,Long.class).deserialize(episodeIds);         System.out.println(list);

答案 3 :(得分:-3)

试试这个。它与我合作。

JavaScriptSerializer jss = new JavaScriptSerializer();

List<Book> lstBook = jss.Deserialize<List<Book>>("your string");