JavaBean与xml文件的互转——xstream

痛定思痛。 2022-05-11 02:18 283阅读 0赞

目录

一.所需jar包

二.JavaBean对象与xml互转之准备相关实体类

三.JavaBean对象转成xml

四.xml文件转JavaBean对象


一.所需jar包

  • 1.1.xstream.jar——互转的基础jar包
  • 1.2.xmlpull.jar——JavaBean转成xml文件需要的jar包
  • 1.3.xpp3-1.1.4c.jar——xml转成JavaBean对象所需要的jar包

这些jar包晚上都可以找到,如果实在找不到,这里给大家一个传送门:xstream.jar包及其他所需依赖jar包下载传送门

二.JavaBean对象与xml互转之准备相关实体类

  1. package bean;
  2. import java.util.List;
  3. /**
  4. * This is the Customer class
  5. *
  6. * @author: lvxiaobu
  7. * @createDate: 2018-09-18 14:45
  8. */
  9. public class Customer {
  10. private String commodity;
  11. public String getCommodity() {
  12. return commodity;
  13. }
  14. public void setCommodity(String commodity) {
  15. this.commodity = commodity;
  16. }
  17. }
  18. package bean;
  19. import java.util.List;
  20. /**
  21. * This is the User class
  22. *
  23. * @author: lvxiaobu
  24. * @createDate: 2018-09-18 14:44
  25. */
  26. public class User {
  27. private String name;
  28. private String age;
  29. private List<Customer> customer;
  30. public String getName() {
  31. return name;
  32. }
  33. public void setName(String name) {
  34. this.name = name;
  35. }
  36. public String getAge() {
  37. return age;
  38. }
  39. public void setAge(String age) {
  40. this.age = age;
  41. }
  42. public List<Customer> getCustomer() {
  43. return customer;
  44. }
  45. public void setCustomer(List<Customer> customer) {
  46. this.customer = customer;
  47. }
  48. }

三.JavaBean对象转成xml

  1. public static void main(String[] args) {
  2. User user = new User();
  3. Customer customer1 = new Customer();
  4. Customer customer2 = new Customer();
  5. customer1.setCommodity("手表");
  6. customer2.setCommodity("电脑");
  7. List<Customer> list = new ArrayList<Customer>();
  8. list.add(customer1);
  9. list.add(customer2);
  10. user.setName("吕小布");
  11. user.setAge("23");
  12. user.setCustomer(list);
  13. //创建xStream对象
  14. XStream xStream = new XStream();
  15. //给class起别名(建议先注释掉,看一下不起别名输出的xml格式)
  16. xStream.alias("User",User.class);
  17. xStream.alias("Customer",Customer.class);
  18. //调用toXML 将对象转成字符串
  19. String s = xStream.toXML(user);
  20. System.out.println(s);
  21. //将字符串写入文件
  22. //handIo(s);
  23. }

控制台输出显示:

  1. <User>
  2. <name>吕小布</name>
  3. <age>23</age>
  4. <customer>
  5. <Customer>
  6. <commodity>手表</commodity>
  7. </Customer>
  8. <Customer>
  9. <commodity>电脑</commodity>
  10. </Customer>
  11. </customer>
  12. </User>

四.xml文件转JavaBean对象

  1. public static void main(String[] args) {
  2. //模拟一个xml格式字符串
  3. String xml = "<user>\n" +
  4. " <name>beyondLi</name>\n" +
  5. " <age>23</age>\n" +
  6. " <customer>\n" +
  7. " <Customer>\n" +
  8. " <commodity>商品1</commodity>\n" +
  9. " </Customer>\n" +
  10. " <Customer>\n" +
  11. " <commodity>商品2</commodity>\n" +
  12. " </Customer>\n" +
  13. " </customer>\n" +
  14. "</user>";
  15. XStream xstream = new XStream();
  16. //不设置会报错
  17. XStream.setupDefaultSecurity(xstream);
  18. xstream.allowTypes(new Class[]{User.class, Customer.class});
  19. //将别名与xml名字相对应
  20. xstream.alias("User", User.class);
  21. xstream.alias("Customer", Customer.class);
  22. User user2 = (User) xstream.fromXML(xml.toString());
  23. System.out.println(user2);
  24. }

控制台输出:

  1. bean.User@4d3167f4

正常流程中,应该是给将JavaBean对象转成xml文件,或者是读取指定xml文件然后将其内容转成JavaBean对象。这个时候就需要添加IO流来操作文件了。

IO流的资源网络上一大堆,在这里我放一个我自己整理的IO流的案例<该IO流案例和此篇博客其实一个demo中的例子>,

传送门:IO流写出读取文件

  1. 如果有书写错误的地方,或者是有问题的地方请及时评论或者是私信我,以免误导个别萌新。
  2. 虽然我也是个萌新。
  3. 你好,我叫吕小布。

发表评论

表情:
评论列表 (有 0 条评论,283人围观)

还没有评论,来说两句吧...

相关阅读