java xml bean_JavaBean到XML转换(使用XStream)

一、maven仓库jar包坐标

com.thoughtworks.xstream

xstream

1.4.9

二、工具类文件

package com.zj.docconvert.util;

import java.io.StringWriter;

import java.io.Writer;

import com.thoughtworks.xstream.XStream;

import com.thoughtworks.xstream.io.xml.CompactWriter;

//

// xml和obj之间相互转换

// @author Jian Jang

// date :2016-05-20

//

///

public class XmlObjUtil {

//

// 对象转换为xml

// @param obj java对象

// @return xml字符串

///

public static String obj2Xml(Object obj, Class> cls){

XStream xs = new XStream();

xs.processAnnotations(cls);

Writer writer = new StringWriter();

xs.marshal(obj, new CompactWriter(writer));

return writer.toString();

}

//

// 将xml转化成java对象

// @param xml字符串

// @param cls java对象类

// @return java对象

///

public static Object xml2Obj(String xml, Class> cls){

XStream xs = new XStream();

xs = new XStream();

xs.processAnnotations(cls);

return xs.fromXML(xml);

}

}

三、测试类

1、对象:班级、学生

//1、班级实体类

package com.zj.util.test;

import java.io.Serializable;

import com.thoughtworks.xstream.annotations.XStreamAlias;

//

// @Description: 班级实体类

// @author Jian Jang

// @version 1.0 2016年5月20日

///

@XStreamAlias("ClassInfo")

public class ClassInfo implements Serializable {

private static final long serialVersionUID = -2301482442415825864L;

@XStreamAlias("id")

private int id;

@XStreamAlias("className")

private String className;

@XStreamAlias("Students")

private Students students;

public ClassInfo() {

super();

}

public void setClassName(String className) {

this.className = className;

}

public String getClassName() {

return className;

}

public void setId(int id) {

this.id = id;

}

public int getId() {

return id;

}

public void setStudents(Students students) {

this.students = students;

}

public Students getStudents() {

return students;

}

}

//学生实体类

package com.zj.util.test;

import java.io.Serializable;

import com.thoughtworks.xstream.annotations.XStreamAlias;

import com.thoughtworks.xstream.annotations.XStreamAsAttribute;

//

// @Description: 学生实体类

// @author Jian Jang

// @version 1.0 2016年5月20日

///

@XStreamAlias("Student")

public class Student implements Serializable{

private static final long serialVersionUID = 7753577466297600065L;

@XStreamAlias("sNo")

@XStreamAsAttribute

private int sNo;

@XStreamAlias("sName")

private String sName;

@XStreamAlias("age")

private int age;

@XStreamAlias("sex")

private String sex;

public Student() {

super();

}

public void setsNo(int sNo) {

this.sNo = sNo;

}

public int getsNo() {

return sNo;

}

public void setsName(String sName) {

this.sName = sName;

}

public String getsName() {

return sName;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getSex() {

return sex;

}

public void setAge(int age) {

this.age = age;

}

public int getAge() {

return age;

}

}

//3、学生集合类

package com.zj.util.test;

import java.io.Serializable;

import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;

import com.thoughtworks.xstream.annotations.XStreamImplicit;

//

// @Description: 学生集合类

// @author Jian Jang

// @version 1.0 2016年5月20日

///

@XStreamAlias("Students")

public class Students implements Serializable {

private static final long serialVersionUID = -6317785303137835174L;

@XStreamImplicit(itemFieldName = "Student")

private List studentInfos;

public Students() {

super();

}

public void setStudentInfos(List studentInfos) {

this.studentInfos = studentInfos;

}

public List getStudentInfos() {

return studentInfos;

}

}

//4/测试类

@Test

public void test01() {

ClassInfo classInfo = new ClassInfo();

classInfo.setId(1);

classInfo.setClassName("网络工程102");

List students = new ArrayList();

Student s1 = new Student();

s1.setsNo(2016001);

s1.setsName("张三");

s1.setSex("男");

s1.setAge(22);

Student s2 = new Student();

s2.setsNo(2016002);

s2.setsName("李四");

s2.setSex("男");

s2.setAge(22);

Student s3 = new Student();

s3.setsNo(2016003);

s3.setsName("王思");

s3.setSex("女");

s3.setAge(18);

students.add(s1);

students.add(s2);

students.add(s3);

Students s = new Students();

s.setStudentInfos(students);

classInfo.setStudents(s);

System.out.println(XmlObjUtil.obj2Xml(classInfo, ClassInfo.class));

}

1

网络工程102

张三

22

李四

22

王思

18

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值