使用JAXB处理JavaBean和XML的转换
2013-03-19 15:00
399 查看
package com.jadyer.jaxb; import java.io.StringReader; import java.io.StringWriter; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; /** * 使用JAXB处理JavaBean和XML的转换 * @create Mar 17, 2013 3:25:49 PM * @author 玄玉<http://blog.csdn/net/jadyer> */ public class TestJAXB { public static void main(String[] args) throws JAXBException { StringWriter sw = new StringWriter(); Student stu = new Student(1, 22, "Jadyer", new Classroom(11, 2010, "软件技术班")); /** * 生成JAXBContext */ //要在JavaBean中使用@XmlRootElement注解指定XML根元素,否则Marshal或者UnMarshal都会失败 JAXBContext jaxbContext = JAXBContext.newInstance(Student.class); /** * 将JavaBean编排为XML字符串 */ Marshaller marshaller = jaxbContext.createMarshaller(); //该值默认为false,true则不会创建即头信息,即<?xml version="1.0" encoding="UTF-8" standalone="yes"?> //marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true); //直接输出到控制台 //marshaller.marshal(stu, System.out); marshaller.marshal(stu, sw); System.out.println(sw.toString()); /** * 将XML字符串反编排为JavaBean */ Unmarshaller unMarshaller = jaxbContext.createUnmarshaller(); Student student = (Student)unMarshaller.unmarshal(new StringReader(sw.toString())); System.out.println(student.getAge()); System.out.println(student.getName()); System.out.println(student.getClassroom().getName()); } }
下面是用到的两个实体类
package com.jadyer.jaxb; import javax.xml.bind.annotation.XmlRootElement; /** * 必须显式或隐式的提供默认的构造方法 */ @XmlRootElement public class Student { private int id; //学生编号 private int age; //学生年龄 private String name; //学生姓名 private Classroom classroom; //学生所属班级 public Student() {} public Student(int id, int age, String name, Classroom classroom) { this.id = id; this.age = age; this.name = name; this.classroom = classroom; } } /** * 各属性的getter和setter方法略 */ public class Classroom { private int id; //班级编号 private int grade; //班级年级 private String name; //班级名称 public Classroom() {} public Classroom(int id, int grade, String name) { this.id = id; this.grade = grade; this.name = name; } }
相关文章推荐
- JAXB 初识(由XML转换为JavaBean) Unmarshaller 的使用
- 使用JDK中JAXBContext对JavaBean和xml相互转换
- 使用JAXB实现JAVA解析XML (节点大小写和属性的互相转换实例
- 利用JAXB进行xml和javabean之间转换
- 使用JAXB来完成Javabean与XML文件(字符串)之间的相互转换
- 使用JAXB时,xml与java对象互转以及初始情况下直接由模板xml生成javabean
- 使用JAXB处理XML文档——先睹为快
- 使用XMAP完成JavaBean和XML之间转换
- 字符串内特殊字符在html_javascript_xml等内使用时的转换 ,"缺少十六进制数字"错误的处理
- 使用 XStream实现JavaBean 与 XML/JSON 之间相互转换
- 使用JAXB实现JAVA对象和XML字符串的互相转换实例
- 使用XStream实现xml与JavaBean之间的转换
- JAXB实现JavaBean和xml互相转换
- jaxb实现XML与JavaBean的互相转换遇到的难点(一)
- JAXB xml与javaBean的转换
- 使用JAXB实现JAVA对象和XML字符串的互相转换实例
- 使用JAXB处理JAVA和XML
- 使用JAXB处理XML文档——先睹为快
- [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换
- JAXB 实现 XML & JAVABEAN 的转换