xml to object java_Java xml object 互转

public class ClassRoom {

private int id;

private String name;

private int grade;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getGrade() {

return grade;

}

public void setGrade(int grade) {

this.grade = grade;

}

public ClassRoom(int id, String name, int grade) {

super();

this.id = id;

this.name = name;

this.grade = grade;

}

public ClassRoom() {

super();

}

}

import javax.xml.bind.annotation.XmlElement;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "xml")

public class Student {

private int id;

private String name;

private int age;

private ClassRoom classroom;

@XmlElement(name = "aa")

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public ClassRoom getClassroom() {

return classroom;

}

public void setClassroom(ClassRoom classroom) {

this.classroom = classroom;

}

public Student(int id, String name, int age, ClassRoom classroom) {

super();

this.id = id;

this.name = name;

this.age = age;

this.classroom = classroom;

}

// 无参够着函数一定需要,否则JXBContext无法正常解析。

public Student() {

super();

}

}

ClassRoom classroom = new ClassRoom(1, "软件工程", 4);

Student student = new Student(101, "张三", 22, classroom);

try {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

JAXBContext context = JAXBContext.newInstance(Student.class);

Marshaller marshaller = context.createMarshaller();

// 是否格式 化

marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

marshaller.setProperty(Marshaller.JAXB_ENCODING, "gbk");

// 省略头信息

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);

marshaller.marshal(student, baos);

String xmlStr = new String(baos.toByteArray());

System.out.println(xmlStr);

Unmarshaller unmarshaller = context.createUnmarshaller();

student = (Student) unmarshaller.unmarshal(new StringReader(xmlStr));

System.out.println(student.getAge());

System.out.println(student.getClassroom().getName());

} catch (JAXBException e) {

e.printStackTrace();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值