使用 XStream 在 JavaBean 与 XML/JSON 之间相互转换
2009-09-23 00:00:00 来源:WEB开发网5.xstream.toXML(customer, new PrintWriter(System.out));
代码说明:这里对于 XStream 实例只是构造时换成了 JsonHierarchicalStreamDriver 实例,也可以用 JettisonMappedXmlDriver(需要引入 jettison-1.x.x.jar 包)。别名机制与前面的情况是一样的。仍然用 toXML() 方法,没有 toJSON() 方法,统一了接口方法以,用起来却让人有些费解。
看输出:
01.{"customer": {
02. "custId": 1,
03. "custName": "Unmi",
04. "orders": [
05. {
06. "orderId": 101,
07. "orderName": "电器类",
08. "products": [
09. {
10. "prodId": 1001,
11. "prodName": "电脑",
12. "prodPrice": 4000.0
13. },
14. {
15. "prodId": 1002,
16. "prodName": "空调",
17. "prodPrice": 2000.0
18. }
19. ]
20. }
21. ]
22.}}
如果使用的是 JettisonMappedXmlDriver,你会看到输出的内容全在一行。
前面用于演示 JavaBean 到 XML/JSON 的转换的例子,还稍显复杂,涉及到了 List 和数组类型。其实 XStream 是通过反射来获取属性的,即使是私有的,而不依赖于 getter 方法,这点上比JSON-lib 要强。XStream 使用了像 JDBC Driver 的模式,通过更换 Driver 的方式来达成不同的内部实现。和 DWR/Struts 一样,它也是用 Converter 来做到数据类型的转换。
更多精彩
赞助商链接