1.新建两个类:
ClassRoom.java
public class ClassRoom {
private int id;
private String name;
private Student student;
……增加get() set()和构造方法
}
Student.java
public class Student {
private int id;
private String name;
private String grade;
private String sex;
……增加get() set()和构造方法
}
2.建一个测试类(引入JUnit4)
public class TestJaxb {
//java转为xml
@Test
public void test01() throws Exception{
JAXBContext jct=JAXBContext.newInstance(ClassRoom.class);
Marshaller marshaller=jct.createMarshaller();
ClassRoom classroom=new ClassRoom(1,"11计科",new Student(1,"maoyedong","11","男"));
marshaller.marshal(classroom, System.out);
}
//xml转为java
@Test
public void test02() throws JAXBException{
String xml="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><classRoom><id>1</id><name>11计科 </name><student><grade>11</grade><id>1</id><name>maoyedong</name><sex>男</sex></student></classRoom>";
JAXBContext jct=JAXBContext.newInstance(ClassRoom.class);
Unmarshaller unmarshaller=jct.createUnmarshaller();
ClassRoom classroom=(ClassRoom) unmarshaller.unmarshal(new StringReader(xml));
System.out.println("班级id="+classroom.getId()+"\n"+" 班级名称= "+classroom.getName()+"\n"
+" 学生id="+classroom.getStudent().getId()+"\n"+"学生姓名= "+classroom.getStudent().getName());
}
}
结果分别为:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><classRoom><id>1</id><name>11计科</name><student><grade>11</grade><id>1</id><name>maoyedong</name><sex>男</sex></student></classRoom>
和
班级id=1
班级名称= 11计科
学生id=1
学生姓名= maoyedong