2010-06-30 104 views
2

我想将Java对象转换为包含编组XML数据的字符串。我能找到的方法之一是首先编组到文件,然后使用BufferedReader读取文件以转换为字符串。我觉得这可能不是最有效的方式,因为IO操作执行两次(一次在编组期间和第二次在将文件内容转换为字符串期间)使用jaxb将Java对象转换为XML字符串

任何人都可以请建议任何更好的方法?

回答

0

的下面是AbacusUtil

Account account = N.fill(Account.class); 
String xml = N.toXML(account); 
N.println(xml); // <account><id>6264304841028291043</id><gui>33acdcbe-fd5b-49</gui><emailAddress>19c1400a-97ae-43</emailAddress><firstName>67922557-8bb4-47</firstName><middleName>7ef242c9-8ddf-48</middleName><lastName>1ec6c731-a3fd-42</lastName><birthDate>1480444055841</birthDate><status>1444930636</status><lastUpdateTime>1480444055841</lastUpdateTime><createTime>1480444055841</createTime></account> 
Account account2 = N.fromXML(Account.class, xml); 
assertEquals(account, account2); 

宣言的简单代码:我AbacusUtil的开发商。

+0

谨慎阐述? – RamenChef 2016-11-29 18:45:15

+0

简单:很容易将一个java对象序列化为String/File/OuputStream/Writer或从String/File/InputStream/Reader反序列化。请参阅Java API文档解析器[http://www.landawn.com/api-docs/com/landawn/abacus/parser/Parser.html]:在上面的 – 2016-11-29 19:17:49

+0

性能:它的速度比它快大约3到10倍JAXB在JDK和XStream中提供,具体取决于xml/Java Object的大小。和约20%的速度谢谢杰克逊XML。我会在答案中更新关于表现的评论。 – 2016-11-29 19:22:25