XML和对象相互转换的方法
2016-09-19 18:02
387 查看
最近项目中需要用到XML配置一些信息,百度了一下,发现使用XStream相对简单,简单配置一下即可进行转换,方法如下:
首先添加依赖
IDEA会自动下载依赖的JAR包,下载完成后就可以编码了,主体代码如下:
先建立实体类,TransBean,该对象引用另外一个实体类FieldBean,代码如下:
FieldBean如下:
测试类代码如下
DEMO下载地址为:XML和JAVA对象互转
首先添加依赖
<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对象互转
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序