記錄一下工作中遇到的問題:
webservice請求返回的不是對象而是XML,調研了一下,這種算是比較前沿的技術,非常簡單,將XML文件中的每層標籤做成模型對象dojo,切記必須序列化,然後加入相應的註解完成轉換。
JAXB(Java API for XML Binding),提供了一個快速便捷的方式將Java對象與XML進行轉換。在JAX-WS(Java的WebService規範之一)中,JDK1.6 自帶的版本JAX-WS2.1,其底層支持就是JAXB。
JAXB 可以實現Java對象與XML的相互轉換,在JAXB中,將一個Java對象轉換爲XML的過程稱之爲Marshal,將XML轉換爲Java對象的過程稱之爲UnMarshal。
模型對象如下:
@XmlRootElement(name="baseInfo")
@XmlAccessorType(XmlAccessType.FIELD)
public class BaseInfo implements Serializable{
private static final long serialVersionUID = 1L;
@XmlElement(name="fiversioneld")
private String version;
...
}
具體轉換步驟如下:
JAXBContext context = JAXBContext.newInstance(new Class[] { BaseInfo.class });
Unmarshaller unmarshaller = context.createUnmarshaller();
InputStream is = new ByteArrayInputStream(a.getBytes("UTF-8"));
BaseInfo baseInfo= ((BaseInfo) unmarshaller.unmarshal(is));
System.out.println(JSON.toJSONString(baseInfo));