JavaBean与xml文件的互转——xstream
目录
一.所需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互转之准备相关实体类
package bean;
import java.util.List;
/**
* This is the Customer class
*
* @author: lvxiaobu
* @createDate: 2018-09-18 14:45
*/
public class Customer {
private String commodity;
public String getCommodity() {
return commodity;
}
public void setCommodity(String commodity) {
this.commodity = commodity;
}
}
package bean;
import java.util.List;
/**
* This is the User class
*
* @author: lvxiaobu
* @createDate: 2018-09-18 14:44
*/
public class User {
private String name;
private String age;
private List<Customer> customer;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public List<Customer> getCustomer() {
return customer;
}
public void setCustomer(List<Customer> customer) {
this.customer = customer;
}
}
三.JavaBean对象转成xml
public static void main(String[] args) {
User user = new User();
Customer customer1 = new Customer();
Customer customer2 = new Customer();
customer1.setCommodity("手表");
customer2.setCommodity("电脑");
List<Customer> list = new ArrayList<Customer>();
list.add(customer1);
list.add(customer2);
user.setName("吕小布");
user.setAge("23");
user.setCustomer(list);
//创建xStream对象
XStream xStream = new XStream();
//给class起别名(建议先注释掉,看一下不起别名输出的xml格式)
xStream.alias("User",User.class);
xStream.alias("Customer",Customer.class);
//调用toXML 将对象转成字符串
String s = xStream.toXML(user);
System.out.println(s);
//将字符串写入文件
//handIo(s);
}
控制台输出显示:
<User>
<name>吕小布</name>
<age>23</age>
<customer>
<Customer>
<commodity>手表</commodity>
</Customer>
<Customer>
<commodity>电脑</commodity>
</Customer>
</customer>
</User>
四.xml文件转JavaBean对象
public static void main(String[] args) {
//模拟一个xml格式字符串
String xml = "<user>\n" +
" <name>beyondLi</name>\n" +
" <age>23</age>\n" +
" <customer>\n" +
" <Customer>\n" +
" <commodity>商品1</commodity>\n" +
" </Customer>\n" +
" <Customer>\n" +
" <commodity>商品2</commodity>\n" +
" </Customer>\n" +
" </customer>\n" +
"</user>";
XStream xstream = new XStream();
//不设置会报错
XStream.setupDefaultSecurity(xstream);
xstream.allowTypes(new Class[]{User.class, Customer.class});
//将别名与xml名字相对应
xstream.alias("User", User.class);
xstream.alias("Customer", Customer.class);
User user2 = (User) xstream.fromXML(xml.toString());
System.out.println(user2);
}
控制台输出:
bean.User@4d3167f4
正常流程中,应该是给将JavaBean对象转成xml文件,或者是读取指定xml文件然后将其内容转成JavaBean对象。这个时候就需要添加IO流来操作文件了。
IO流的资源网络上一大堆,在这里我放一个我自己整理的IO流的案例<该IO流案例和此篇博客其实一个demo中的例子>,
传送门:IO流写出读取文件
如果有书写错误的地方,或者是有问题的地方请及时评论或者是私信我,以免误导个别萌新。
虽然我也是个萌新。
你好,我叫吕小布。
还没有评论,来说两句吧...