XML格式數據與模型對象互轉

記錄一下工作中遇到的問題:
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));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章