我有以下XML这是我从一个REST API无法反序列化元素的列表简单
<?xml version="1.0" encoding="UTF-8"?>
<list>
<securitygroup>
<objectId>securitygroup-1</objectId>
<name>Activity Monitoring Data Collection</name>
</securitygroup>
<securitygroup>
<objectId>securitygroup-10</objectId>
<name>object2</name>
</securitygroup>
</list>
我的课都是这样
@Root(strict = false)
public class SecurityGroup
{
@Element
String objectId;
@Element
String name;
}
@Root
public class SecurityGroupList
{
@ElementList(inline = true)
public List<SecurityGroup> list;
}
定义得到当我试图淡化它
String input = "The above XML..."
final Persister persister = new Persister();
SecurityGroupList list = persister.read(SecurityGroupList.class, input);
我得到一个异常,下面的消息“元素'SecurityGroup'没有在类cms_proxy匹配。第1行的CMS.nsx.objects.SecurityGroupList“(忽略行号,它全部在我正在使用的字符串中的一行中)。我试图将@ElementList中的名称和条目设置为“securitygroup”,但仍然收到相同的消息。
这听起来很琐碎,我确定我错过了一些非常简单的事情,但我无法让它工作。
谢谢。
UPDATE
由于决定从简单的移动到JAXB的决定,我没有时间检查答案,很抱歉。再次感谢。
我要说尝试反向工程它..\t \t Serializer serializer = new Persister(); \t \t \t \t文件结果=新文件(“e:\\ example.xml”); \t \t serializer.write(groupList,result); 你会看到你的元素xml映射出了什么问题(我已经试过了)。确保您在列表中创建两个或三个元素。 CHEERS !! – ppuskar 2014-09-04 08:36:23