该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-09
最后修改:2011-09-15
两行是指有效代码,稍安毋躁
很方便,很容易,很快,心情很愉快:) 对象转String,String转对象.对象转文件,文件转对象.
/** * 对象转文件,文件转回对象 */ @Test public void testFromFile() throws IOException { String fileName = "d:/personBObj.xml"; OutputStream out = null; InputStream input = null; File file = new File(fileName); XStream xstream = initXStream(); PersonBObj personBObj = personBObjInit(); try { // 对象生成XML文件 out = new FileOutputStream(fileName); xstream.toXML(personBObj, out); Assert.assertTrue(file.exists()); // XML文件转对象 input = new FileInputStream(fileName); PersonBObj fromFileBObj = (PersonBObj) xstream.fromXML(input); Assert.assertEquals("1", fromFileBObj.getContId()); } finally { out.close(); input.close(); } if (file.exists()) { file.delete(); } }
/** * 对象转String, String转回对象 */ @Test public void testFromString() { XStream xStream = initXStream(); // 对象转XML PersonBObj personBObj = personBObjInit(); String xml = xStream.toXML(personBObj); Assert.assertNotNull(xml); // XML转对象 PersonBObj fromXMLObj = (PersonBObj) xStream.fromXML(xml); Assert.assertEquals("1", fromXMLObj.getContId()); }
/** * 初始化 XStream 对象 */ private XStream initXStream() { XStream xstream = new XStream(); // 以下为对象属性起别名 xstream.alias("OrgNameBObj", OrgNameBObj.class); xstream.alias("ContactBObj", ContactBObj.class); xstream.alias("IdentifierBObj", IdentifierBObj.class); xstream.alias("ConteQuivBObj", ConteQuivBObj.class); xstream.alias("AddressBObj", AddressBObj.class); xstream.alias("ContactMethodBObj", ContactMethodBObj.class); xstream.alias("RelativePersonBObj", RelativePersonBObj.class); xstream.alias("OrgBObj", OrgBObj.class); xstream.alias("PersonBObj", PersonBObj.class); xstream.alias("PersonNameBObj", PersonNameBObj.class); xstream.aliasField("OrgNameBObjs", OrgBObj.class, "orgNameBObjs"); xstream.aliasField("IdentifierBObjs", OrgBObj.class, "identifierBObjs"); xstream.aliasField("ContEquivBObjs", OrgBObj.class, "contEquivBObjs"); xstream.aliasField("AddressBObjs", OrgBObj.class, "addressBObjs"); xstream.aliasField("ContactMethodBObjs", OrgBObj.class, "contactMethodBObjs"); xstream.aliasField("RelativePersonBObjs", OrgBObj.class, "relativePersonBObjs"); xstream.aliasField("PersonNameBObjs", PersonBObj.class, "personNameBObjs"); xstream.aliasField("IdentifierBObjs", PersonBObj.class, "identifierBObjs"); xstream.aliasField("ContEquivBObjs", PersonBObj.class, "contEquivBObjs"); xstream.aliasField("AddressBObjs", PersonBObj.class, "addressBObjs"); xstream.aliasField("ContactMethodBObjs", PersonBObj.class, "contactMethodBObjs"); return xstream; } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-09
名称一样不用起别名吧
还有这货的效率可不咋地 |
|
返回顶楼 | |
发表时间:2011-09-10
我看到的是很多行代码,不是两行
|
|
返回顶楼 | |
发表时间:2011-09-10
jorneyR 写道 我看到的是很多行代码,不是两行
+1 |
|
返回顶楼 | |
发表时间:2011-09-10
woshicaiqiang 写道 jorneyR 写道 我看到的是很多行代码,不是两行
+1 这贴纯属标题党... |
|
返回顶楼 | |
发表时间:2011-09-10
witcheryne 写道 woshicaiqiang 写道 jorneyR 写道 我看到的是很多行代码,不是两行
+1 这贴纯属标题党... +1 |
|
返回顶楼 | |
发表时间:2011-09-10
XStream是啥玩意儿?
|
|
返回顶楼 | |
发表时间:2011-09-10
个人认为 XStream 还是不错的
|
|
返回顶楼 | |
发表时间:2011-09-10
obullxl 写道 witcheryne 写道 woshicaiqiang 写道 jorneyR 写道 我看到的是很多行代码,不是两行
+1 这贴纯属标题党... +1 +1 |
|
返回顶楼 | |
发表时间:2011-09-11
最后修改:2011-09-11
把java对象转换为xml我自己写过,XSTREAM木有用过。。
http://www.iteye.com/topic/1113110 |
|
返回顶楼 | |