Не удалось проанализировать список элементов с атрибутами
У меня есть объект Links, который имеет член List, в то время как 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());
}
1 ответ
Я мог получить результат после некоторых изменений. Тем не менее, он может получить первый ряд (это ноль). И я не знаю почему.
@JacksonXmlElementWrapper(useWrapping=false)
@JacksonXmlProperty(localName="link")
private Collection<Link> links;
Обновлено: это должно быть ошибкой в версии 2.1.4. Я только что попробовал мастер, это отлично работает.