最近项目上用到了JSON与JAVA对象相互转换的功能,使用了XStream,记录一下方便以后查阅。
// JSON解析工具类
XStream xStream = new XStream(new JettisonMappedXmlDriver());
// 去除根结点
XStream xStream = new XStream(new JsonHierarchicalStreamDriver() {
public HierarchicalStreamWriter createWriter(Writer out) {
return new JsonWriter(out, JsonWriter.DROP_ROOT_MODE);
}
});
xStream.setMode(XStream.NO_REFERENCES);
xStream.alias("data", RequestStructBean.class);
xStream.aliasField("head", RequestStructBean.class, "ReqHead");
xStream.aliasField("body", RequestStructBean.class, "ReqBody");
strResult = xStream.toXML(requestStructBean);
// JSON解析工具类
private static XStream xStream = new XStream(new JettisonMappedXmlDriver());
xStream.setMode(XStream.NO_REFERENCES);
xStream.alias("data", RequestJSON.class);
// 将JSON字符串转为JAVA对象
RequestJSON requestJSON = new RequestJSON();
ResponseJSON responseJSON = null;
try {
requestJSON = (RequestJSON) xStream.fromXML(strData);
} catch (Exception e) {
responseJSON = new ResponseJSON();
responseJSON.setContent(e.getMessage());
responseJSON.setStatus(ResponseJSON.ERROR);
}
strResult = xStream.toXML(responseJSON);