我需要使用简单的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