java中提供了相關的api,jaxb可以實作java對象與xml對象互相轉換,話不多說,下面以實際的例子來說明兩者對象間的轉換:
1.java對象轉換為xml對象稱為Marshall(編排)
Student實體類:
package com.jaxb;
/*
* author:lc_kykz
* Description:Student Entity
*/
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Student {
private String studentId;
private String studentName;
private String studentSex;
//空構造函數,必須要寫
public Student() {
super();
}
public Student(String studentId, String studentName, String studentSex) {
super();
this.studentId = studentId;
this.studentName = studentName;
this.studentSex = studentSex;
}
public String getStudentId() {
return studentId;
}
public String getStudentName() {
return studentName;
}
public String getStudentSex() {
return studentSex;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public void setStudentSex(String studentSex) {
this.studentSex = studentSex;
}
}
junit測試方法:
<span style="white-space:pre"> </span>@Test
public void test_Student() throws Exception{
//建立一個JAXBContent對象,單例模式建立,
JAXBContext ctx = JAXBContext.newInstance(Student.class);
//建立一個編排
Marshaller cm = ctx.createMarshaller();
//建立一個Student執行個體
Student student = new Student("001", "張三", "男");
//将Student對象進行編排
cm.marshal(student, System.out);
}
測試方法輸出結果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><student><studentId>001</studentId><studentName>張三</studentName><studentSex>男</studentSex></student>
2.xml對象轉換為java對象稱為unMarshall(反編排)
<span style="white-space:pre"> </span>@Test
public void test() throws Exception {
//定義一個xml格式的字元串
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><studentId>001</studentId><studentName>張三</studentName><studentSex>男</studentSex></student>";
// 建立一個JAXBContent對象,單例模式建立,
JAXBContext ctx = JAXBContext.newInstance(Student.class);
// 建立一個反編排
Unmarshaller um = ctx.createUnmarshaller();
// 将xml對象進行反編排
Student student = (Student)um.unmarshal(new StringReader(xml));
System.out.println("<span style="font-family: Arial, Helvetica, sans-serif;">Student的ID為:</span>" + student.getStudentId());
}
測試方法輸出結果:
Student的ID為:001
java對象和xml對象互相轉換就是這麼的簡單易懂,隻需要幾行核心代碼就可以解決!