使用 XStream 实现 Java 对象与 XML 的相互转换
来源:互联网 发布:古诗软件下载 编辑:程序博客网 时间:2024/05/01 04:34
1. 初始化要转为 XML 的数据:
// 生成第一条地址数据;Address address1 = new Address(1, "地址一", "广东省XX市", "XX公司");// 生成第二条地址数据;Address address2 = new Address(2, "地址二", "广东省XX市", "家");List<Address> addresses = new ArrayList<Address>();// 将生成的地址数据放到 List 中;addresses.add(address1);addresses.add(address2);// 生成 People 对象并制定相应数据;People people = new People(1, "Shawearn", 1, addresses);
2. Java 对象转化为 XML 格式的字符串:
// 新建 XStream 对象;XStream xStream = new XStream();// 将 People 类的示例转化为 XML 格式的字符串;String xmlStr = xStream.toXML(people);// 打印输出转化后的 XML 字符串;System.out.println(xmlStr);运行结果
<com.shawearn.sitmap.People><id>1</id><name>Shawearn</name><age>1</age><addresses><com.shawearn.xml.Address><id>1</id><name>地址一</name><address>广东省XX市</address><desc>XX公司</desc></com.shawearn.xml.Address><com.shawearn.xml.Address><id>2</id><name>地址二</name><address>广东省XX市</address><desc>家</desc></com.shawearn.xml.Address></addresses></com.shawearn.xml.People>我们会发现节点名字使用了类名,此时可以用 alias 指定 Java 类对应的节点名该方法需要在调用 toXML() 方法之前使用:
/** * Alias a Class to a shorter name to be used in XML elements. * * @param name Short name * @param type Type to be aliased * @throws InitializationException if no {@link ClassAliasingMapper} is available */public void alias(String name, Class type);
// 指定 People 类对应的节点名为 People;xStream.alias(People.class.getSimpleName(), People.class);// 指定 Address 类对应的节点名为 address;xStream.alias("address", Address.class);指定别名后的运行结果:
<People><id>1</id><name>Shawearn</name><age>1</age><addresses><address><id>1</id><name>地址一</name><address>广东省XX市</address><desc>XX公司</desc></address><address><id>2</id><name>地址二</name><address>广东省XX市</address><desc>家</desc></address></addresses></People>
3. XML 转化为 Java 对象;
// 新建 XStream 对象;XStream s = new XStream();// 指定 People 类对应的节点名为 People;s.alias(People.class.getSimpleName(), People.class);// 指定 Address 类对应的节点名为 address;s.alias("address", Address.class);// 将 XML 字符串转化为 People 对象;People people2 = (People) s.fromXML(xmlStr);// 打印输出转化后的 People 对象;System.out.println(people2.toString());
运行结果:
People [id=1, name=Shawearn, age=1, addresses=[Address [id=1, name=地址一, address=广东省XX市, desc=XX公司], Address [id=2, name=地址二, address=广东省XX市, desc=家]]]
0 0
- 使用 XStream 实现 Java 对象与 XML 的相互转换
- 使用XStream将Java对象和XML之间相互转换
- java 实体类与xml之间的相互转换,利用XStream在Java对象和XML之间相互转换
- 使用 XStream实现JavaBean 与 XML/JSON 之间相互转换
- XStream: Java对象和XML之间相互转换的利器
- 使用XStream注解实现Java对象与XML互相转换的代码示例
- 使用XStream注解实现Java对象与XML互相转换的代码示例
- 使用XStream是实现XML与Java对象的转换(1)--简介及入门示例
- 使用XStream是实现XML与Java对象的转换(2)--别名
- xstream:实现JavaBean与XML/JSON的相互转换
- xstream:实现JavaBean与XML/JSON的相互转换
- xstream:实现JavaBean与XML/JSON的相互转换
- 使用XStream是实现XML与Java对象的…
- xStream框架完美实现Java对象和xml文档JSON、XML相互转换
- 使用XStream注解实现Java对象与XML互相转换的代码示例---转自:http://www.blogjava.net/bolo
- java 使用XStream Java对象和XML之间的转换
- JAXB 可以实现Java对象与XML的相互转换
- 利用XStream实现实体对象和xml文件相互转换
- 架构高性能网站秘笈(一)——了解衡量网站性能的指标
- SDOI2016 R1 day2 解题报告(bzoj4516,bzoj4517,bzoj4518)
- 【HDU 3127】WHUgirls(二维完全背包)
- 316. Remove Duplicate Letters
- leetcode 32. Longest Valid Parentheses
- 使用 XStream 实现 Java 对象与 XML 的相互转换
- 关于tableview的知识总结,cell左划出现删除、置顶按钮
- Tomcat7中javax.el.ELException异常信息的处理
- Android设置系统开机自动永不休眠
- 如何使用Xcode的Targets来管理开发和生产版本的构建
- eclipse中配置Tomcat并启动服务器发布项目
- 架构高性能网站秘笈(二)——动态内容缓存
- java 单利模式的几种实现方法
- 关于Android开发的40条优化建议