第一步,Classroom类:Classroom.java
package com.test.jaxb; 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(); } }
第二步,Student类:Student.java
package com.test.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Student { private int id; private String name; private int age; private Classroom classroom; 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; } public Student() { super(); } }
编写两个测试方法测试jaxb编排和反编排Student对象
TestJaxb.java
package com.test.jaxb; import java.io.StringReader; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import org.junit.Test; public class TestJaxb { @Test public void test01() { try { JAXBContext ctx = JAXBContext.newInstance(Student.class); Marshaller marshaller = ctx.createMarshaller(); Student stu = new Student(1,"张三",21,new Classroom(1,"计算机科学与技术",2010)); marshaller.marshal(stu, System.out); } catch (JAXBException e) { e.printStackTrace(); } } @Test public void test02() { try { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><age>21</age><classroom><grade>2010</grade><id>1</id><name>计算机科学与技术</name></classroom><id>1</id><name>张三</name></student>"; JAXBContext ctx = JAXBContext.newInstance(Student.class); Unmarshaller um = ctx.createUnmarshaller(); Student stu = (Student)um.unmarshal(new StringReader(xml)); System.out.println(stu.getName()+","+stu.getClassroom().getName()); } catch (JAXBException e) { e.printStackTrace(); } } }
注意:
1.编排和反编排对象的时候,要用注解@XmlRootElement指明对象是根节点
2.如果Student类或Classroom类中没有默认的构造器,会出下错误信息:
com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
com.test.jaxb.Student does not have a no-arg default constructor.
this problem is related to the following location:
at com.test.jaxb.Student
因为通过Student类生成JAXBContext对象时,要用到它的默认构造器。
相关推荐
JAXB工具类 xml转为java对象 java对象转为xml ,本人亲测,可以使用!!!
NULL 博文链接:https://luyuwww.iteye.com/blog/1988355
该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用...
NULL 博文链接:https://xiongpan0807.iteye.com/blog/1832124
jaxb将xml转换为对象或将对象转换为xml。测试通过。
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...
jaxb xml转化为对象,对象转化为xml,xml转化为xsd,数据库表转化为对象
主要介绍了java利用JAXB实现对象和xml互相转换方法与实例详解,需要的朋友可以参考下
使用jaxb 实现xml——bean互转
NULL 博文链接:https://zw7534313.iteye.com/blog/2422138
jaxb 将xml里面的对象转化为一个个类,大大地简化了xml的相关操作。unmarshal marshal
NULL 博文链接:https://dacoolbaby.iteye.com/blog/1667283
JAXB框架,作用是对象和XML之间相互转化,本文档包含代码示例,介绍对象和XML如果使用JAXB相互转化 在代码里面备注了具体使用的文字说明
wsimport的使用03_wsdl和soap讲解(介入了tcpmon工具)04_SOA的分析(纯属扯淡)05_dtd讲解06_schema的命名空间07_schema的元素和属性的定义08_schema的语法和建议的编写方式09_使用jaxb完成对象和xml的转换10_Stax的...
本文主要讲解JAXB来处理对象与XML进行互转。 其中关于CDATA数据的处理参考: Jaxb如何优雅的处理CData 这篇文章的实现,并略作改动。 二、常用注解(TODO) 三、封装 3.1 pom依赖(TODO) 3.2 CDataAdapter ...
本代码主要是Java对象和Xml之间的转换实例代码,如果想具体指导代码是如何搭建的,可以参照http://blog.csdn.net/songdeitao/article/details/17304395这篇博文,这里的代码是和此对应的。
JAXB是jdk中集成的哟该来 xml和java 对象互相转换的工具,但是在android sdk中默认没有集成,需要自己添加相应的jar包
xml转javaBean,javaBean转xml,xml标签大小写问题,CDATA的生成,以及对xml特殊符号的处理
JAXB api,java 对象与xml 转换。
JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB允许JAVA人员将JAVA类映射为XML表示方式