xstream对象xml互转
1、引入jar包
xpp3_min-1.1.4c.jar
xstream-1.4.8.jar
2、建立java bean
package com.jdw.bean; import java.util.ArrayList;
import java.util.List; public class Company {
private List<Department> departments = new ArrayList<Department>(); public List<Department> getDepartments() {
return departments;
} public void addDepartment(Department department) {
this.departments.add(department);
} @Override
public String toString() {
return "Company [departments=" + departments + "]";
} }
package com.jdw.bean; import java.util.ArrayList;
import java.util.List; public class Department {
private String deptId;
private String name;
private List<Staff> staffs = new ArrayList<Staff>(); public String getDeptId() {
return deptId;
} public void setDeptId(String deptId) {
this.deptId = deptId;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public List<Staff> getStaffs() {
return staffs;
} public void addStaff(Staff staff) {
this.staffs.add(staff);
} @Override
public String toString() {
return "Department [deptId=" + deptId + ", name=" + name + ", staffs=" + staffs + "]";
}
}
package com.jdw.bean;
public class Staff {
private Integer id;
private String name;
private Integer age;
private String address;
private Double salary;
@Override
public String toString() {
return "Staff [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + ", salary=" + salary
+ "]";
}
public Staff() {
super();
}
public Staff(Integer id, String name, Integer age, String address, Double salary) {
super();
this.id = id;
this.name = name;
this.age = age;
this.address = address;
this.salary = salary;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
}
3、JunitTest
package com.jdw.test; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException; import org.junit.After;
import org.junit.Before;
import org.junit.Test; import com.jdw.bean.Company;
import com.jdw.bean.Department;
import com.jdw.bean.Staff;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver; public class XmlTest { private XStream xstream; @Before
public void setUp() throws Exception {
xstream=new XStream(new DomDriver());
xstream.alias("company", Company.class);
xstream.alias("department", Department.class);
xstream.alias("staff", Staff.class); xstream.aliasAttribute(Staff.class, "id","cc");
} @After
public void tearDown() throws Exception { } @Test
public void test() { Company company=new Company(); Department dept1=new Department();
dept1.setDeptId("001");
dept1.setName("技术部");
dept1.addStaff(new Staff(1,"黄药师",40,"山东青岛",new Double(10000)));
dept1.addStaff(new Staff(2,"郭靖",20,"山东济南",new Double(3000))); Department dept2=new Department();
dept2.setDeptId("002");
dept2.setName("销售部");
dept2.addStaff(new Staff(1,"黄蓉",20,"山东青岛",new Double(5000)));
dept2.addStaff(new Staff(2,"张三丰",30,"山东济南",new Double(6000))); company.addDepartment(dept1);
company.addDepartment(dept2); String str="company.xml"; try {
PrintWriter pw=new PrintWriter(str,"UTF-8"); xstream.toXML(company, pw); } catch (FileNotFoundException | UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } @Test
public void testRead(){
try {
InputStream in=new FileInputStream(new File("company.xml"));
Company company=(Company)xstream.fromXML(in);
System.out.println(company);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
xstream对象xml互转的更多相关文章
- JAVA bean与XML互转的利器---XStream
最近在项目中遇到了JAVA bean 和XML互转的需求, 本来准备循规蹈矩使用dom4j忽然想起来之前曾接触过的XStream, 一番研究豁然开朗,利器啊利器, 下来就XStream的一些用法与大家 ...
- Xstream(对象和xml转换)
package com.vcredit.framework.utils; import java.io.Writer; import org.apache.commons.lang3.StringUt ...
- XML和对象属性互转的基类
本人做了一个XML和对象属性互转的基类,现在放上来有兴趣拿去看一下,用法很简单,声明一个BaseConversion的子类,该子类与你想转换的对象相对应,然后覆盖基类的两个虚方法,然后在里面写元素与对 ...
- XML解析---利用XStream解析xml数据及反构造Java对象
XStream 是一个轻量级的.简单易用的开放源代码 Java库,用于将 Java 对象序列化为 XML 或者再转换回来.而且XStream还能将java对象转成其它格式,比如JSon. 需要用到的包 ...
- json、javaBean、xml互转的几种工具介绍
json.javaBean.xml互转的几种工具介绍 转载至:http://blog.csdn.net/sdyy321/article/details/7024236 工作中经常要用到Json.Jav ...
- C#中另辟蹊径解决JSON / XML互转的问题
C#中另辟蹊径解决JSON / XML互转的问题 最近在一个POC的项目中要用到JSON和XML的相互转换, 虽然我知道很多类库如JSON.NET具备这种功能, 但是我还是另辟蹊径的使用Spider ...
- JavaBean与xml互转的方法详解
本文实例讲述了Jaxb2实现JavaBean与xml互转的方法.分享给大家供大家参考,具体如下: 一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的 ...
- Springboot中使用Xstream进行XML与Bean 相互转换
在现今的项目开发中,虽然数据的传输大部分都是用json格式来进行传输,但是xml毕竟也会有一些老的项目在进行使用,正常的老式方法是通过获取节点来进行一系列操作,个人感觉太过于复杂.繁琐.推荐一套简单的 ...
- Jaxb2实现JavaBean与xml互转的方法详解
本文实例讲述了Jaxb2实现JavaBean与xml互转的方法.分享给大家供大家参考,具体如下: 一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的 ...
随机推荐
- GTW likes gt(BC 模拟 or 优先队列)
GTW likes gt Accepts: 54 Submissions: 782 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 13107 ...
- 摆方块(贪心)P1087
描述 给你一个n*n的方格,每个方格里的数必须连续摆放如 1 2 4 3 ,下图为不连续的,请输出从左上角到右下角的对角线上的最大和 1 2 3 4 输入 ...
- sql每五秒插入一条数据 一次插入N条数据
1建立数据表 create table projectManage ( ID int identity primary key not null, projectName )not null, man ...
- Android应用开发中Intent的作用及使用方法
Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件.通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意 ...
- angularJS常用命令
首先使用命令行进入你要编辑的web项目目录下: (一)编译浏览项目 1:grunt build 对web项目编译: 2:grunt server 装载(在浏览器上查看页面): 3:ctrl ...
- HTML5视音频小结
目前,大多数视频是通过插件(比如 Flash)来显示的.然而,并非所有浏览器都拥有同样的插件.HTML5 规定了一种通过 video 元素来包含视频的标准方法.当前HTML5只支持三种格式的视频. 格 ...
- UESTC_韩爷的梦 2015 UESTC Training for Search Algorithm & String<Problem N>
N - 韩爷的梦 Time Limit: 200/100MS (Java/Others) Memory Limit: 1300/1300KB (Java/Others) Submit Stat ...
- Median of Two Sorted Arrays 解答
Question There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median o ...
- Valid Anagram 解答
Question Given two strings s and t, write a function to determine if t is an anagram of s. For examp ...
- cc150 Chapter 2 | Linked Lists 2.6 Given a circular linked list, implement an algorithm which returns node at the beginning of the loop.
2.6Given a circular linked list, implement an algorithm which returns the node at the beginning of ...