我需要使用簡單的api反序列化對一個對象的xml響應。 當我反序列化一個對象時,它工作得很好,但是當我嘗試反序列化一個內聯列表時,我得到一個異常: org.simpleframework.xml.core.ElementException:元素'Person'在類MyPersons中沒有匹配在第3行。Android - 如何反序列化包含使用簡單api的對象列表
將欣賞我在做什麼錯誤的線索或用複雜對象反序列化內聯列表的工作示例。
謝謝。
附件是我對象的一個簡單的例子:
我的xml:
<Persons>
<Person>
<Info>
<ID>1</ID>
<Name>A</Name>
</Info>
<Address>aaa</Address>
<Products>
<Product>
<Name>foo</Name>
<Product>foofoo</Product>
</Product>
<Product>
<Name>bar</Category>
<Product>barbar</Product>
</Product>
</Products>
</Person>
<Person>
<Info>
<ID>2</ID>
<Name>B</Name>
</Info>
<Address>bbb</Address>
<Products>
<Product>
<Name>foo2</Name>
<Product>foofoo2</Product>
</Product>
<Product>
<Name>bar2</Category>
<Product>barbar2</Product>
</Product>
</Products>
</Person>
</Persons>
我的對象:
@Root(name="Persons")
public class MyPersons {
@ElementList(inline=true)
private List<Person> persons;
}
@Root
public class Person {
@Element
private Info Info;
@Element(required=false)
private String Address;
@ElementList
private List<Product> Products;
public Person(@Element(name="Info") Info Info){
this.Info = Info;
//doing some logic
}
}
public class Product {
@Element
private String Name;
@Element
private String Product;
}
@Root
public class Info {
@Element(required=false)
private String ID;
@Element
private String Name;
}
據我可以告訴你的xml列表實際上是* not * inline,因爲每個Person都有一個合適的根元素。我會從刪除'@ElementList(inline = true)'開始。以下是一些值得關注的例子:[反序列化列表](http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#list)&[反序列化列表](http: //simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#inline)。 – 2012-07-19 19:23:05
謝謝。我看到了例子,這就是爲什麼我認爲我的列表是內聯的..如果我刪除@ElementList(內聯=真),我將如何得到人員列表..? – ckita 2012-07-19 20:56:07