1. 编写简单的POJO,并添加基本的注解,类似于JPA,只有被@XmlRootElement标注的类才会处理:
package org.jack.jaxb;import javax.xml.bind.annotation.XmlRootElement;/** @author 李文锴*/@XmlRootElementpublic class Jack {private String firstName;private String lastName;public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName = firstName;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}}
2. 编写测试类,进行POJO与XML的转换:
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
public class JAXBTest {
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance(Jack.class);
Marshaller marshaller = context.createMarshaller();
Unmarshaller unmarshaller = context.createUnmarshaller();
Jack jack = new Jack();
jack.setFirstName("jack");
jack.setLastName("lee");
StringWriter writer = new StringWriter();
marshaller.marshal(jack, writer);
System.out.println(writer.toString());
String xml = "<jack><firstName>first</firstName><lastName>last</lastName></jack>";
Jack xj = (Jack) unmarshaller.unmarshal(new StringReader(xml));
System.out.println(xj.getFirstName());
System.out.println(xj.getLastName());
}
}
3. 查看输出结果: