无法解析具有属性的元素列表

时间:2013-03-12 09:29:43

标签: java xml jackson fasterxml

我有对象链接有List的成员而Link只有属性但是列表的解析有问题 - 它被创建为空。
在下面的测试中,links.getLinks()返回空列表。任何想法?
XML示例:

<links>
<link x="1" y="2" />
<link x="3" y="4" />
</links>

Java

@JacksonXmlRootElement(localName="links")
public class Links extends BaseAmebaElement {

@JacksonXmlProperty(localName="link")
//@JacksonXmlElementWrapper(localName="link")
private Collection<Link> links;

public Collection<Link> getLinks() {
    return links;
}

public void setLinks(Collection<Link> links) {
    this.links = links;
}
}

...

@JacksonXmlRootElement(localName="link")
public class Link {

@JacksonXmlProperty(localName="x", isAttribute=true)
private String href;

@JacksonXmlProperty(localName="y", isAttribute=true)
private String rel;

...

    XmlMapper  xmlMapper = new XmlMapper ();
    try {
        Links links = xmlMapper.readValue(input, Links.class);
        assertNotNull(links);
        assertNotNull(links.getLinks());
        assertEquals(2, links.getLinks().size());
    } catch (Throwable e) {
        fail(e.getMessage());
    }

1 个答案:

答案 0 :(得分:5)

我可以在一些变化后得到结果。但是,它可以获得第一行(它为空)。我不知道为什么。

@JacksonXmlElementWrapper(useWrapping=false)
@JacksonXmlProperty(localName="link")
private Collection<Link> links;

更新: 这应该是2.1.4版中的错误。我刚试过master,这很好用。