WebService系列博客{九}[JAXBContext---java和xml的互相转换]

来源:互联网 发布:java写99乘法表 编辑:程序博客网 时间:2024/04/20 15:02

java和xml的互相转换,依靠强大的JAXBContext可以轻松实现。

下面通过一个简单案例学习一下JAXBContext


首先准备好一个JavaBean供实验:

注意

1、类文件注解:@XmlRootElement不可缺少

2、2个Student的构造方法不能少

@XmlRootElementpublic class Student {private String name;private String width;private String height;private int age;public Student(String name, String width, String height, int age) {super();this.name = name;this.width = width;this.height = height;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getWidth() {return width;}public void setWidth(String width) {this.width = width;}public String getHeight() {return height;}public void setHeight(String height) {this.height = height;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Student() {super();}}

JavaToXml:

@Testpublic void test01(){try {JAXBContext jc = JAXBContext.newInstance(Student.class);Marshaller ms = jc.createMarshaller();Student st = new Student("zhang", "w", "h", 11);ms.marshal(st, System.out);} catch (JAXBException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

XmlToJava

//xml转换Java@Testpublic void test02() throws JAXBException{String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><age>11</age><height>h</height><name>zhang</name><width>w</width></student>";JAXBContext jc = JAXBContext.newInstance(Student.class);Unmarshaller unmar = jc.createUnmarshaller();Student stu = (Student) unmar.unmarshal(new StringReader(xml));System.out.println(stu.getName());}