2012-08-13 136 views
2

我试图反序列化JSON以下对象列表:反序列化JSON列表与Flexjson

{ "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); 

但看多的例子,我很茫然之后,现在,是可以直接反序列化到一个列表?

回答

0

好吧,我想我找到可接受的解决方案,虽然我不知道这是

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

如何优化将导致书籍的列表。如果有人可能有一个更“适当”的解决方案随时发表评论。

-3

试试这个。它与我合作。

JavaScriptSerializer jss = new JavaScriptSerializer(); 

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

Isnt JavaScriptSerializer是一个C#类吗?如果它适用于Java,我需要导入哪些库? – vikke 2012-08-14 05:54:24

+0

是的,它是一个C#类,用于java的尝试这个链接http://code.google.com/p/json-io/。我没有测试它,但似乎它会工作。 – Dips 2012-08-14 15:13:54

2

从@vikke中抽取样本我成功地应用了多列表的反序列化。

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

下低于

列表列表flexjson 1.9.2 =新JSONDeserializer>()。使用(空,ArrayList.class)。用( “值”,Long.class).deserialize(episodeIds) ; System.out.println(list);