当列表的包装元素是根本身时,是否存在将列表解组为映射的方法?
我有以下xml结构,我无法改变:
<?xml version="1.0"?>
<root>
<article id="1">...</article>
<article id="2">...</article>
...
</root>
我喜欢以下地图结构:
Map<Integer,Article> map
我尝试使用XmlAdapter,但问题是适配器的unmarshal方法。这里它喜欢有一个自己的包装元素,例如&#34;物品&#34;这是我没有的。我发现只有working examples列表有自己的专用包装元素。
我试过&#34; unmarshall(列出文章)&#34;但它从未被调用过。并使用&#34; unmarshall(对象文章)&#34;它会为每个文章元素调用th方法
任何提示?
@XmlRootElement(name = "root")
@XmlAccessorType(XmlAccessType.FIELD)
public class DataSet {
@XmlJavaTypeAdapter(MyAdapter.class)
@XmlElement(name="article")
private Map<Integer,Article> map;
}
public class MyAdapter extends XmlAdapter< ??? , Map<Integer,Article> {
@Override
public Map<Integer, Article> unmarshal( ??? ) throws Exception {
Map<Integer, Article> map = new HashMap<Integer, Article>();
...
return map;
}
...
}
答案 0 :(得分:0)
答案是,它目前不受支持,你需要自己做,意味着在解组后你需要遍历对象列表并自己将它们放到地图上