잭슨 2.2.3
먼저, 어리석은 실수를 용서 해주세요. 네트워크 연결이 끊어져서 수동으로 다시 입력해야했습니다)
다음 XML이 있습니다.
<orgs>
<org name="Test1">
<item>a</item>
<item>b</item>
</org>
<org name="Test2">
<item>c</item>
<item>d</item>
<item>e</item>
</org>
</orgs>
이것을 구문 분석하기 위해 다음 클래스가 있습니다.
@XmlRootElement(name = "orgs")
@XmlAccessorType(XmlAccessType.FIELD)
public class XmlOrgElements {
private List<Org> orgs;
public List<Org> getOrgs() {
return orgs;
}
public void setOrg(List<Org> orgs) {
this.orgs = orgs;
}
public class Org {
@JacksonXmlProperty(isAttribute = true)
private String name;
private List<Item> items;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Item> getItems() {
return items;
}
public void setName(List<Item> items) {
this.items = items;
}
}
public class Item {
@JacksonXmlText
private String item;
public String getItem() {
return item;
}
public void setItem(String item) {
this.item = item;
}
}
}
하지만 내가 돌려받는 것은 "orgs = null"뿐입니다. 이유를 아는 사람이 있습니까?
목록에 대해 래핑되지 않은 처리를 활성화해야합니다. 기본값은 "래핑 된"형식을 사용하는 것입니다. 이 문제를 진단하는 가장 좋은 방법은 Java 객체로 시작하여 XML로 직렬화하고 출력 형식이 무엇인지 확인하는 것입니다. 이것은 구조가 어떻게 다른지에 대한 아이디어를 제공합니다.
기본적으로 언 래핑 된 스타일을 사용하려면 다음을 사용할 수 있습니다.
JacksonXmlModule module = new JacksonXmlModule();
module.setDefaultUseWrapper(false);
mapper.registerModule(module);
주석도 있습니다 @JacksonXmlElementWrapper
.
public class Bean {
@JacksonXmlElementWrapper(useWrapping=false)
public List<Stuff> entry;
}
목록 속성별로 동작을 변경합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다