4
개체에 링크가 있지만 속성에 대한 링크 만 있지만 목록의 구문 분석에 문제가 있습니다. 즉, 빈 항목이 만들어집니다.
아래 테스트에서 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());
}
최신 버전 (2.1.4)을 사용하고 있는지 확인하십시오. 귀하의 코드와 특수 효과가 제게 적합합니다. – StaxMan
@StaxMan 예, 2.1.4 (com.fasterxml.jackson.dataformat : jackson-dataformat-xml : 2.1.4)를 사용하고 있습니다. – longhua
나는 똑같은 것을 시도했다 ... 다른 버전의 시도에서 나는 또한이 문제를 보았다 - 첫 번째 요소는 항상 목록에서 null이다. 5 개의 요소가있는 경우 - 첫 번째 요소는 null이고 다른 요소는 내부에 있습니다. 또한 요소에 문제가 있는지 확인했습니다. 그러나 모든 요소의 동일한 내용으로도 첫 번째 요소가 null이됩니다. (이것이 연습 및 POC에만 해당되므로 최종 해결 방법은 XStream을 사용하는 것이 었습니다. 그러나 XStream을 사용하는 측면에서 모든 데이터를 구문 분석해야한다는 사실은 모델의 변경 사항에 매우 엄격하고 민감합니다. – urir