1 package com.slp.jxmarshaller; 2 3 /** 4 * Created by sanglp on 2017/2/26. 5 */ 6 public class ClassName { 7 private int id; 8 private String name; 9 private int grade;10 11 public ClassName() {12 }13 14 public ClassName(int id, String name, int grade) {15 this.id = id;16 this.name = name;17 this.grade = grade;18 }19 20 public int getId() {21 return id;22 }23 24 public void setId(int id) {25 this.id = id;26 }27 28 public String getName() {29 return name;30 }31 32 public void setName(String name) {33 this.name = name;34 }35 36 public int getGrade() {37 return grade;38 }39 40 public void setGrade(int grade) {41 this.grade = grade;42 }43 }
package com.slp.jxmarshaller;import javax.xml.bind.annotation.XmlRootElement;/** * Created by sanglp on 2017/2/26. * [com.sun.istack.internal.SAXException2: 由于类型 "com.slp.jxmarshaller.Student" 缺少 @XmlRootElement 注释, 无法将该类型编集为元素] */@XmlRootElementpublic class Student { private int id; private String name; private int age; private ClassName className; 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 ClassName getClassName() { return className; } public void setClassName(ClassName className) { this.className = className; } public Student(int id, String name, int age, ClassName className) { this.id = id; this.name = name; this.age = age; this.className = className; } public Student() { }}
1 package com.slp.jxmarshaller; 2 3 import org.junit.Test; 4 5 import javax.xml.bind.JAXBContext; 6 import javax.xml.bind.JAXBException; 7 import javax.xml.bind.Marshaller; 8 import javax.xml.bind.Unmarshaller; 9 import java.io.StringReader;10 11 /**12 * Created by sanglp on 2017/2/26.13 */14 public class TestJaxb {15 16 /**17 * 输出结果18 *19 */20 @Test21 public void test01(){22 try {23 JAXBContext ctx = JAXBContext.newInstance(Student.class);24 Marshaller marshaller = ctx.createMarshaller();25 Student student = new Student(1,"张三",21,new ClassName(1,"10数学",2010));26 marshaller.marshal(student,System.out);27 } catch (JAXBException e) {28 e.printStackTrace();29 }30 }31 32 33 /**34 * 张三 10数学35 */36 @Test37 public void test02(){38 String str=" 21 2010 1 10数学 1 张三 \n";39 try {40 JAXBContext ctx = JAXBContext.newInstance(Student.class);41 Unmarshaller unmarshaller = ctx.createUnmarshaller();42 Student stu = (Student) unmarshaller.unmarshal(new StringReader(str));43 System.out.println(stu.getName()+" "+stu.getClassName().getName());44 } catch (JAXBException e) {45 e.printStackTrace();46 }47 48 }49 } 21 2010 1 10数学 1 张三