1
자습서 here을 따르려고하고 있으며 직렬화에 어려움을 겪고있는 것 같습니다. 좀 더 이런 식으로 뭔가를 기대하고 있습니다일반 래퍼 개체로 목록 마샬링
<?xml version="1.0" encoding="UTF-8"?>
<WrapBean>[email protected]@49114668</WrapBean>
: 나는 개체 마샬링 때, 나는 다음과 같은 출력을 얻을
<?xml version="1.0" encoding="UTF-8"?>
<WrapBean>
<ChildBean>
<first_name>[name]</first_name>
<last_name>[name[</last_name>
<age>[age]</age>
</ChildBean>
<ChildBean>
...
</ChildBean>
</WrapBean>
이 내 주요 방법 :
public static void main(String[] args) throws Exception {
JAXBContext context = (JAXBContext) JAXBContext.newInstance(WrapBean.class);
ArrayList<ChildBean> children = new ArrayList<ChildBean>();
ChildBean c1 = new ChildBean();
c1.setFname("larry");
c1.setLname("sanderson");
c1.setAge("13");
children.add(c1);
ChildBean c2 = new ChildBean();
c2.setFname("amber");
c2.setLname("smith");
c2.setAge("11");
children.add(c2);
QName qName = new QName("WrapBean");
WrapBean wrapper = new WrapBean(children);
JAXBElement<WrapBean> jaxbElement = new JAXBElement<WrapBean>(qName, WrapBean.class, wrapper);
marshaller.setProperty(JAXBMarshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(jaxbElement, System.out);
}
내가 할 수있는 필요한 경우 빈 클래스를 게시하지만 요소 이름을 올바르게 가져 오는 데 필요한 setter 및 getter 및 주석 만 있습니다. 아무도 내가 누락 된 부분을 도울 수 있습니까?
편집 : 나는 또한 언급하고 싶었다는 랩퍼 오브젝트는 튜토리얼과 완전히 동일합니다
public class Wrapper<T> {
private List<T> items;
public Wrapper() {
items = new ArrayList<T>();
}
public Wrapper(List<T> items) {
this.items = items;
}
@XmlAnyElement(lax=true)
public List<T> getItems() {
return items;
}
}
감사합니다. Blaise, 정확히 내가 놓친 것입니다. 그것이 내가 다르게하고 있었던 유일한 물건이었던 것을 생각하면 더 가까워 졌음에 틀림 없었다. 다시 한번 감사드립니다. – Prmths
안녕 Blaise, 만약 당신이 목록 안에있는 개별 항목에 대한 래퍼를 만드는 방법을 알고 궁금해? 여기에 질문을 게시했습니다 : http://stackoverflow.com/questions/28946378/jaxb-wrapper-class-for-external-rest-api 기본적으로 REST API가있는 JAXB를 사용하고 있습니다. 항목의 내용은 동일하지만 요청 또는 응답 인 경우 루트 요소는 또는 이지만 그 목록의 각 항목에 대해 또는 의 요소를 갖습니다. 응답 또는 요청. 감사합니다. –
CodyK