XML和对象相互转换的方法
来源:互联网 发布:match against 没数据 编辑:程序博客网 时间:2024/06/01 23:49
最近项目中需要用到XML配置一些信息,百度了一下,发现使用XStream相对简单,简单配置一下即可进行转换,方法如下:
首先添加依赖
<dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.3</version> </dependency>
IDEA会自动下载依赖的JAR包,下载完成后就可以编码了,主体代码如下:
先建立实体类,TransBean,该对象引用另外一个实体类FieldBean,代码如下:
package com.springapp.mvc;import java.util.List;/** * Created by zhangqq on 2016/9/19. */public class TransBean { private String id; private List<FieldBean> parmList; public String getId() { return id; } public void setId(String id) { this.id = id; } public List<FieldBean> getParmList() { return parmList; } public void setParmList(List<FieldBean> parmList) { this.parmList = parmList; } @Override public String toString() { System.out.println("转换对象成功,ID为:"+id+"列表长度"+parmList.size()); return String.valueOf(parmList.size()); }}
FieldBean如下:
package com.springapp.mvc;/** * Created by zhangqq on 2016/9/19. */public class FieldBean { private String key; private String uName; private String isSign; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getuName() { return uName; } public void setuName(String uName) { this.uName = uName; } public String getIsSign() { return isSign; } public void setIsSign(String isSign) { this.isSign = isSign; }}
测试类代码如下
package com.springapp.mvc;import com.thoughtworks.xstream.XStream;import org.springframework.util.StringUtils;import java.io.IOException;/** * Created by zhangqq on 2016/9/19. */public class TestXml { public static void main(String[] args) { testXml(); } public static String testXml() { /** * 读取XML文件内容 */// String filePath = FileUtils.getFilePath("trans/DelCard.xml"); TransBean transBean = new TransBean();// try { String xmlStr ;//= FileUtils.readFile(filePath); xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<TransId id=\"DelCard\">\n" + " <PnrCallBack>\n" + " <Field key=\"CmdId\" uName=\"CmdId\" isSign=\"true\"/>\n" + " <Field key=\"RespCode\" uName=\"RespCode\" isSign=\"true\"/>\n" + " <Field key=\"RespDesc\" uName=\"RespDesc\" isSign=\"false\"/>\n" + " <Field key=\"MerCustId\" uName=\"MerCustId\" isSign=\"true\"/>\n" + " <Field key=\"UsrCustId\" uName=\"UsrCustId\" isSign=\"true\"/>\n" + " <Field key=\"CardId\" uName=\"CardId\" isSign=\"true\"/>\n" + " <Field key=\"ChkValue\" uName=\"ChkValue\" isSign=\"false\"/>\n" + "\n" + " </PnrCallBack>\n" + "</TransId>\n"; System.out.println("XML源文件:"+xmlStr); if(!StringUtils.isEmpty(xmlStr)) { /** * 实例Xstream对象 * */ XStream xmlUtils =new XStream(); /** *设置XML节点别名为TransId,属性名 ,依据xml文件进行设定 * */ xmlUtils.processAnnotations(TransBean.class); xmlUtils.alias("TransId", TransBean.class); xmlUtils.aliasAttribute(TransBean.class, "id", "id"); xmlUtils.aliasField("PnrCallBack", TransBean.class, "parmList"); xmlUtils.processAnnotations(FieldBean.class); xmlUtils.alias("Field", FieldBean.class); xmlUtils.aliasAttribute(FieldBean.class, "key", "key"); xmlUtils.aliasAttribute(FieldBean.class, "uName", "uName"); xmlUtils.aliasAttribute(FieldBean.class, "isSign", "isSign"); /** * 执行转换 * */ transBean = (TransBean) xmlUtils.fromXML(xmlStr); String toXml = xmlUtils.toXML(transBean); System.out.println("对象转换为XML:"+toXml); }// } catch (IOException e) {// e.printStackTrace();// } return transBean.toString(); }}输入内容如下:
XML源文件:<?xml version="1.0" encoding="UTF-8"?><TransId id="DelCard"> <PnrCallBack> <Field key="CmdId" uName="CmdId" isSign="true"/> <Field key="RespCode" uName="RespCode" isSign="true"/> <Field key="RespDesc" uName="RespDesc" isSign="false"/> <Field key="MerCustId" uName="MerCustId" isSign="true"/> <Field key="UsrCustId" uName="UsrCustId" isSign="true"/> <Field key="CardId" uName="CardId" isSign="true"/> <Field key="ChkValue" uName="ChkValue" isSign="false"/> </PnrCallBack></TransId>对象转换为XML:<TransId id="DelCard"> <PnrCallBack> <Field key="CmdId" uName="CmdId" isSign="true"/> <Field key="RespCode" uName="RespCode" isSign="true"/> <Field key="RespDesc" uName="RespDesc" isSign="false"/> <Field key="MerCustId" uName="MerCustId" isSign="true"/> <Field key="UsrCustId" uName="UsrCustId" isSign="true"/> <Field key="CardId" uName="CardId" isSign="true"/> <Field key="ChkValue" uName="ChkValue" isSign="false"/> </PnrCallBack></TransId>转换对象成功,ID为:DelCard列表长度7
DEMO下载地址为:XML和JAVA对象互转
2 0
- XML和对象相互转换的方法
- java对象和xml对象的相互转换
- 关于Java对象和XML之间的相互转换
- 利用JAXB实现java对象和xml的相互转换
- 对象和XML,JSON格式字符串的相互转换
- XStream: Java对象和XML之间相互转换的利器
- Java对象和XML的相互转换化
- XML 和 java对象相互转换
- XML 和 java对象相互转换
- XML数组和对象相互转换
- XML 和 java对象相互转换
- XML 和 java对象相互转换
- JAXB-java对象和xml相互转换
- XML 和 java对象相互转换
- Java对象和XML相互转换
- XML 和 java对象相互转换
- 研究一下 项目 webservice xml和java对象的相互自动转换,json和java对象的相互自动转换
- xml与java对象的相互转换
- Android动态改变button顶部图片即drawableTop属性
- 第四周 项目3-单链表的应用(1)
- Neutron 理解 (7): Neutron 是如何实现负载均衡器虚拟化的 [LBaaS V1 in Juno]
- Android中的Drawable
- 类,对象的粗浅学习
- XML和对象相互转换的方法
- Android 文件下载器
- Wiki_Android_网络工具类NetworkUtils
- Android的线程和线程池
- sqlserver 作业计划 无法修改分区方案
- Ruby操作Excel文件
- 经验分享:CSS浮动(float,clear)通俗讲解
- javascript创建函数的方法
- Android 真机访问 Tomcat