我有以下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