博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDK自带XML和java对象相互转换
阅读量:6258 次
发布时间:2019-06-22

本文共 3596 字,大约阅读时间需要 11 分钟。

下面使用的是JDK自带的类,没有引用任何第三方jar包

 

Unmarshaller 类使客户端应用程序能够将 XML 数据转换为 Java 内容对象树。

备注:marshal(序列化、排列、整理)

Marshaller 类使客户端应用程序能够将 Java 内容树转换回 XML 数据。

package hb.jaxb;  import javax.xml.bind.annotation.XmlRootElement;  //1、需要转换的model对象一定要添加@XmlRootElement注解,其里面的其他对象(Classroom)则不需要@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;      }      //无参够着函数一定需要,否则JXBContext无法正常解析。      public Student() {          super();      }  }

package hb.jaxb;  //2、需要转换的model对象一定要有不带参数的构造方法,包括该对象里面引用的对象。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();      }  }

package hb.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;  //Eclipse console //中文乱码解决 eclipse-->Run-->Run Configuration-->Common--> Console Encoding-->Others-->UTF-8//参考博文:http://hbiao68.iteye.com/blog/1958413public class TestJaxb {      @Test      public void beanToXML() {          Classroom classroom = new Classroom(1, "软件工程", 4);          Student student = new Student(101, "张三", 22, classroom);          try {              JAXBContext context = JAXBContext.newInstance(Student.class);              Marshaller marshaller = context.createMarshaller();              marshaller.marshal(student, System.out);          } catch (JAXBException e) {              e.printStackTrace();          }      }            @Test      public void XMLStringToBean(){          String xmlStr = "
22
4
1
软件工程
101
张三
";          try {              JAXBContext context = JAXBContext.newInstance(Student.class);              Unmarshaller unmarshaller = context.createUnmarshaller();              Student student = (Student)unmarshaller.unmarshal(new StringReader(xmlStr));              System.out.println(student.getAge());              System.out.println(student.getClassroom().getName());          } catch (JAXBException e) {              e.printStackTrace();          }                }  }

参考博文:

本文出自 “” 博客,请务必保留此出处

转载地址:http://bvasa.baihongyu.com/

你可能感兴趣的文章
mysql中,创建包含json数据类型的表?创建json表时候的注意事项?查询json字段中某个key的值?...
查看>>
Json、JavaBean、String等互转
查看>>
Python-列表
查看>>
多线程
查看>>
[CF949C]Data Center Maintenance
查看>>
增强for循环的使用详解及代码
查看>>
程序员优化程序流程
查看>>
6 ZigZag Conversion
查看>>
[react-router] 平时积累
查看>>
强类型数据集
查看>>
使用python处理selenium中的获取文本问题
查看>>
LinearLayout布局
查看>>
java 的 (PO,VO,TO,BO,DAO,POJO) 解释
查看>>
基本计数方法
查看>>
Mock.js:前后端分离开发工具
查看>>
内容循环滚动的表格
查看>>
Catalyst揭秘 Day7 SQL转为RDD的具体实现
查看>>
【转载】小公司如何管理
查看>>
DOM笔记(十):JavaScript正则表达式
查看>>
关于贴友的一个书本页面简单布局(html+css)的实现
查看>>