一、最简配置
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<dataResult>
<resultCode>0</resultCode>
<resultInfo>成功返回数据</resultInfo>
<data>数据</data>
</dataResult>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="dataResult")
public class CarDataResult {
private String resultCode;
private String resultInfo;
private String data;
// getter & setter
}
二、List属性/xml集合节点
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<dataResult>
<resultCode>0</resultCode>
<resultInfo>成功返回数据</resultInfo>
<data>
<object>
<JDCSYR>aaa</JDCSYR>
<SFZMHM>222</SFZMHM>
<HPHM>ccc</HPHM>
</object>
<object>
<JDCSYR>bbb</JDCSYR>
<SFZMHM>223</SFZMHM>
<HPHM>ddd</HPHM>
</object>
</data>
</dataResult>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="dataResult")
public class CarDataResult {
private String resultCode;
private String resultInfo;
@XmlElementWrapper
@XmlElementRef
private List<CarData> data;
// getter & setter
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="object")
public class CarData {
private String JDCSYR;
private String SFZMHM;
private String HPHM;
//getter & setter
}
三、生成XML时节点顺序配置
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="object")
@XmlType(propOrder = {"JDCSYR", "SFZMHM", "HPHM"})
public class CarData {
private String JDCSYR;
private String SFZMHM;
private String HPHM;
//getter & setter
}
九九、工具类
package com.nssc.utils;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
public class XmlUtils {
public static <T> T xmlToBean(String xml, Class<T> clazz) {
try {
JAXBContext context = JAXBContext.newInstance(clazz);
Unmarshaller unmarshaller = context.createUnmarshaller();
T t = (T) unmarshaller.unmarshal(new StringReader(xml));
return t;
} catch (JAXBException e) {
e.printStackTrace();
return null;
}
}
public static String beanToXml(Object object) {
try {
StringWriter writer = new StringWriter();
JAXBContext context = JAXBContext.newInstance(object.getClass());
Marshaller marshal = context.createMarshaller();
marshal.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshal.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
marshal.setProperty(Marshaller.JAXB_FRAGMENT, false);
marshal.setProperty("jaxb.encoding", "utf-8");
marshal.marshal(object, writer);
return new String(writer.getBuffer());
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}