XStream对象相当Java对象和XML之间的转换器,转换过程是双向的。创建XSteam对象的方式很简单,只需要new XStream()即可。
Java到xml,用toXML()方法。
Xml到Java,用fromXML()方法。
别名配置包含三种情况:
1、类别名,用alias(String name, Class type)。
2、类成员别名,用aliasField(String alias, Class definedIn, String fieldName)
3、类成员作为属性别名,用 aliasAttribute(Class definedIn, String attributeName, String alias),单独命名没有意义,还要通过useAttributeFor(Class definedIn, String fieldName) 应用到某个类上。
4、addImplicitCollection(Class ownerType, String fieldName),去掉集合类型生成xml的父节点。
5、registerConverter(Converter converter) ,注册一个转换器。
----Java到xml,用toXML()。
XStream xStreamForRequestPostData = new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("-_", "_")));//解决XStream对出现双下划线的bug
String postDataXML = xStreamForRequestPostData.toXML(xmlObj);
----Xml到Java,用fromXML()。
XStream xStreamForResponseData = new XStream();
xStreamForResponseData.alias("xml", tClass);
xStreamForResponseData.ignoreUnknownElements();//暂时忽略掉一些新增的字段
xStreamForResponseData.fromXML(xml);
============xStream亦可与list、Map、json等相互转换
----Java到xml,用toXML()。
XStream xStreamForRequestPostData = new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("-_", "_")));//解决XStream对出现双下划线的bug
String postDataXML = xStreamForRequestPostData.toXML(xmlObj);
----Xml到Java,用fromXML()。
XStream xStreamForResponseData = new XStream();
xStreamForResponseData.alias("xml", tClass);
xStreamForResponseData.ignoreUnknownElements();//暂时忽略掉一些新增的字段
xStreamForResponseData.fromXML(xml);