4

List のメンバーを持つオブジェクト Links がありますが、Link には属性しかありませんが、リストの解析には何か問題があります。空に作成されます。
以下のテストでは、links.getLinks()空のリストを返します。何か案は?
XML の例:

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

ジャバ

@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());
    }
4

1 に答える 1

7

いくつかの変更後に結果を得ることができました。ただし、最初の行を取得できます (null です)。理由はわかりません。

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

更新: これはバージョン 2.1.4 のバグです。masterを試したところ、これは正常に機能します。

于 2013-03-12T11:03:56.550 に答える