使用JAXB处理JavaBean和XML的转换
来源:互联网 发布:家庭预算软件 编辑:程序博客网 时间:2024/05/17 06:45
完整版见https://jadyer.github.io/2013/03/19/xml-jaxb/
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;/** * 必须显式或隐式的提供默认的构造方法 */@XmlRootElementpublic 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处理JavaBean和XML的转换
- JAXB转换xml和JavaBean
- JAXB 初识(由XML转换为JavaBean) Unmarshaller 的使用
- 通过jaxb实现javabean和xml的转换
- XML:使用JAXB完成JavaBean和xml的转化
- jaxb-xml和javabean转换实战
- JAXB实现JavaBean和xml互相转换
- JAXB实现xml与javabean的转换
- JAXB 实现 XML & JAVABEAN 的转换
- JAXB xml与javaBean的转换
- 利用JAXB进行xml和javabean之间转换
- 利用JAXB进行xml和javabean之间转换
- 用 Jaxb 对 XML 和 JavaBean相互转换
- 转:利用JAXB进行xml和javabean之间转换
- 使用JAXB来完成Javabean与XML文件(字符串)之间的相互转换
- 使用JAXB完成object和xml的转换
- 使用jaxb完成对象和xml的转换
- 使用JAXB处理JAVA和XML
- cocos2d-x自带的CCHttpClient下载百度网页并写入成网页文件
- vi/vim 基本使用方法
- servlet中参数的传递方式
- 单例设计模式
- Android 触摸响应处理逻辑
- 使用JAXB处理JavaBean和XML的转换
- apache -tomcat 负载均衡 --只为学习
- 正则表达式 实例
- Three20学习之清空网络缓存
- 拿到现成的wsdl. 用java开发webService服务端
- 关于MYSQL 更改表引擎的文章
- ByteArrayOutputStream用法
- 解决cast from 'char*' to 'char**' increases required alignment of target type [-Werror=cast-align]
- 【Oracle】Number类型的定义