java数据类型转换____Xstream框架对象和XML的转换

来源:互联网 发布:淘宝开店要两张银行卡 编辑:程序博客网 时间:2024/06/09 18:52
package com.cnse.convert.xstream;/** * 对象转xml的po * @author God */public class RespTextEntity {// 接收方帐号(收到的OpenID)private String ToUserName;// 开发者微信号private String FromUserName;// 消息创建时间 (整型)private long CreateTime;// 消息类型(text/music/news)private String MsgType;// 位0x0001被标志时,星标刚收到的消息private int FuncFlag;// 回复的消息内容private String Content;//encappublic String getToUserName() {return ToUserName;}public void setToUserName(String toUserName) {ToUserName = toUserName;}public String getFromUserName() {return FromUserName;}public void setFromUserName(String fromUserName) {FromUserName = fromUserName;}public long getCreateTime() {return CreateTime;}public void setCreateTime(long createTime) {CreateTime = createTime;}public String getMsgType() {return MsgType;}public void setMsgType(String msgType) {MsgType = msgType;}public int getFuncFlag() {return FuncFlag;}public void setFuncFlag(int funcFlag) {FuncFlag = funcFlag;}public String getContent() {return Content;}public void setContent(String content) {Content = content;}}

//微信的一个xml参数结构

package com.cnse.convert.xstream;import java.io.Writer;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.core.util.QuickWriter;import com.thoughtworks.xstream.io.HierarchicalStreamWriter;import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;import com.thoughtworks.xstream.io.xml.XppDriver;/** * @author Administrator * */public class XstreamUtil {/** * 文本消息对象转换成xml * @param textMessage * @return xml */public static String ObjToXml(RespTextEntity textMessage) {XStream xstream = new XStream();xstream.alias("xml", textMessage.getClass());return xstream.toXML(textMessage);}/** * 带Cdata包裹的 * @param textMessage * @return */public static String ObjToCDATAXml(RespTextEntity textMessage) {XStream xCDATAstream = new XStream(new XppDriver() {public HierarchicalStreamWriter createWriter(Writer out) {return new PrettyPrintWriter(out) {// 对所有xml节点的转换都增加CDATA标记boolean cdata = true;@SuppressWarnings("unchecked")public void startNode(String name, Class clazz) {super.startNode(name);}protected void writeText(QuickWriter writer, String text) {if (cdata) {writer.write("<![CDATA[");writer.write(text);writer.write("]]>");} else {writer.write(text);}}};}});xCDATAstream.alias("xml", textMessage.getClass());return xCDATAstream.toXML(textMessage);}//testpublic static void main(String[] args) {RespTextEntity r = new RespTextEntity();r.setMsgType("Music");r.setContent("this is teset ");r.setFromUserName("zhangsan");r.setCreateTime(123L);r.setFuncFlag(1);System.out.println("没有Cdata包裹的xml_:\n "+ObjToXml(r));System.out.println("有CDATA包裹的xml__:\n "+ObjToCDATAXml(r));}}

//运行结果


//仍有大部分的平台使用者xml参数交互比较老的系统

1 0
原创粉丝点击