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) 是一个业界的 ...
随机推荐
- JavaScript权威指南阅读笔记3
第六章 对象 1.首先是先介绍了对象直接量的格式:对象直接量就是1.由若干个名/值对组成的映射表,2名/值对中间由冒号分割,3名值对之间由逗号分割,4整个映射表由花括号括起来.这样就组成了一个对象直接 ...
- 新手必看的jQuery优化笔记十则
jQuery优化 1.简介 jQuery正在成为Web开发人员首选的JavaScript库,作为Web开发者,除了要了解语言和框架的应用技巧外,如何提升语言本身的性能也是开发人员应该思考的问题.文章就 ...
- 秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得 .
Date date=new Date(); long hm=date.getTime(); //获取毫秒 或者 毫秒级:System.currentTimeMillis() 纳秒级: System.n ...
- linux crontab运行
Linux在相应用户下,用crontab -l 命令可以查看该用户定时执行的任务. 1- $>crontab -l 无内容. 则表示没有指定用户执行对应用户下的crontab文件. 2- $&g ...
- 怎样使用淘宝npm镜像
淘宝的 NPM 镜像是一个完整的npmjs.org镜像.你可以用此代替官方版本(只读),同步频率目前为 15分钟 一次以保证尽量与官方服务同步. 当前 registry.npm.taobao.org ...
- ExtJs Model之convert的使用
convert: function(value,record){} value:为当前属性的值,record.get('属性')用来获取其他属性的值. 以下案例是:将年龄减去2. Ext.define ...
- C语言经典程序190例
[程序1] 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数.求??代表的两位数,及809*??后的结果. 1.程序分析: 2.程序 ...
- Bash Shell 快捷键的学习使用
原文地址: http://dbanotes.net/tech-memo/shell_shortcut.html 这篇 Bash Shell Shortcuts 的快捷键总结的非常好.值得学习.下面内容 ...
- Kth Largest Element in an Array 解答
Question Find the kth largest element in an unsorted array. Note that it is the kth largest element ...
- 【C++基础之十四】函参的缺省
可能会有这么一个函数,在大部分的情况下,我们不用给它传递参数,但在某些特殊情况下,我们需要给它传递参数,那怎么办呢? 简单啊,写两个一样的方法,一个带参,一个不带参... 这样也太没水准了.来点高端的 ...