两行代码轻松搞定XML和对象间相互转换. XStream 简单示例.

很方便,很容易,很快,心情很愉快:)

对象转String,String转对象.对象转文件,文件转对象.

 

Java代码   收藏代码
  1. /** 
  2.  * 对象转文件,文件转回对象 
  3.  */  
  4. @Test  
  5. public void testFromFile() throws IOException {  
  6.   
  7.     String fileName = "d:/personBObj.xml";  
  8.     OutputStream out = null;  
  9.     InputStream input = null;  
  10.     File file = new File(fileName);  
  11.     XStream xstream = initXStream();  
  12.     PersonBObj personBObj = personBObjInit();  
  13.   
  14.     try {  
  15.         // 对象生成XML文件  
  16.         out = new FileOutputStream(fileName);  
  17.         xstream.toXML(personBObj, out);  
  18.         Assert.assertTrue(file.exists());  
  19.   
  20.         // XML文件转对象  
  21.         input = new FileInputStream(fileName);  
  22.         PersonBObj fromFileBObj = (PersonBObj) xstream.fromXML(input);  
  23.         Assert.assertEquals("1", fromFileBObj.getContId());  
  24.   
  25.     } finally {  
  26.         out.close();  
  27.         input.close();  
  28.     }  
  29.   
  30.     if (file.exists()) {  
  31.         file.delete();  
  32.     }  
  33. }  

 

 

Java代码   收藏代码
  1. /** 
  2.  * 对象转String, String转回对象 
  3.  */  
  4. @Test  
  5. public void testFromString() {  
  6.   
  7.     XStream xStream = initXStream();  
  8.   
  9.     // 对象转XML  
  10.     PersonBObj personBObj = personBObjInit();  
  11.     String xml = xStream.toXML(personBObj);  
  12.     Assert.assertNotNull(xml);  
  13.   
  14.     // XML转对象  
  15.     PersonBObj fromXMLObj = (PersonBObj) xStream.fromXML(xml);  
  16.     Assert.assertEquals("1", fromXMLObj.getContId());  
  17. }  
 

Java代码   收藏代码
  1. /** 
  2.  * 初始化 XStream 对象 
  3.  */  
  4. private XStream initXStream() {  
  5.   
  6.     XStream xstream = new XStream();  
  7.   
  8.     // 以下为对象属性起别名  
  9.     xstream.alias("OrgNameBObj", OrgNameBObj.class);  
  10.     xstream.alias("ContactBObj", ContactBObj.class);  
  11.     xstream.alias("IdentifierBObj", IdentifierBObj.class);  
  12.     xstream.alias("ConteQuivBObj", ConteQuivBObj.class);  
  13.     xstream.alias("AddressBObj", AddressBObj.class);  
  14.     xstream.alias("ContactMethodBObj", ContactMethodBObj.class);  
  15.     xstream.alias("RelativePersonBObj", RelativePersonBObj.class);  
  16.     xstream.alias("OrgBObj", OrgBObj.class);  
  17.     xstream.alias("PersonBObj", PersonBObj.class);  
  18.     xstream.alias("PersonNameBObj", PersonNameBObj.class);  
  19.   
  20.     xstream.aliasField("OrgNameBObjs", OrgBObj.class"orgNameBObjs");  
  21.     xstream.aliasField("IdentifierBObjs", OrgBObj.class"identifierBObjs");  
  22.     xstream.aliasField("ContEquivBObjs", OrgBObj.class"contEquivBObjs");  
  23.     xstream.aliasField("AddressBObjs", OrgBObj.class"addressBObjs");  
  24.     xstream.aliasField("ContactMethodBObjs", OrgBObj.class"contactMethodBObjs");  
  25.     xstream.aliasField("RelativePersonBObjs", OrgBObj.class"relativePersonBObjs");  
  26.   
  27.     xstream.aliasField("PersonNameBObjs", PersonBObj.class"personNameBObjs");  
  28.     xstream.aliasField("IdentifierBObjs", PersonBObj.class"identifierBObjs");  
  29.     xstream.aliasField("ContEquivBObjs", PersonBObj.class"contEquivBObjs");  
  30.     xstream.aliasField("AddressBObjs", PersonBObj.class"addressBObjs");  
  31.     xstream.aliasField("ContactMethodBObjs", PersonBObj.class"contactMethodBObjs");  
  32.   
  33.     return xstream;  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值