专栏名称: hryou0922
目录
相关文章推荐
简单心理  ·  当闺蜜成为母亲:生育如何改变女性友谊 ·  4 小时前  
简单心理  ·  关于心理咨询,你可能会有的7个疑问 ·  昨天  
武志红  ·  4种认知,帮你建立稳定的内核 ·  昨天  
陈忻儿童心理  ·  自我是一个需要亲手搭建、不断生长的存在 ·  昨天  
51好读  ›  专栏  ›  hryou0922

组件使用总结:使用 JAXB 实现 XML文件和java对象互转

hryou0922  · 掘金  ·  · 2018-11-07 09:27

正文

阅读 18

组件使用总结:使用 JAXB 实现 XML文件和java对象互转

JAXB

JAXB:实现xml和java对象互转

JAXB是一个业界的标准,实现XML文件和Java对象的互转。
JAXB是JDK 的组成部分。我们不需要下载第三方jar包 即可做到轻松转换。
复制代码

重要类和接口:

	○ JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。
	○ Marshaller接口,将Java对象序列化为XML数据。
	○ Unmarshaller接口,将XML数据反序列化为Java对象。
复制代码

注解

从XML到Java对象的注解:
	○ @XmlType: 
	○ @XmlElement :将java对象的属性映射为xml的节点
	○ @XmlRootElement:此类对应xml的根元素
	○ @XmlAttribute :把java对象的属性映射为xml的属性
	○ @XmlAccessorType :用于指定由java对象生成xml文件时对java对象属性的访问方式
	○ @XmlJavaTypeAdapter :在转换比较复杂的对象时,如map类型或者格式化日期等。使用此注解时,需要自己写一个XmlAdapter类
从Java对象到XML的注解:
	○ @XmlAccessorOrder :对java对象生成的xml元素进行排序
	○ @XmlTransient :定义某一字段或属性不需要被映射为XML
	○ @XmlElementWrapper :为数组元素或集合元素定义一个父节点
复制代码

工程实现

demo1:演示xml基本用法,演示@XmlRootElement 、@XmlAccessorType、@XmlElement的用法

基础POJO类 ClassRoomModel包含一个变量name和变量StudentModel列表

public class StudentModel {
    private int id; // 学号
    private String name; // 名称
    private String sex; // 性别
}

@XmlRootElement(name = "classRoom")
@XmlAccessorType(value = XmlAccessType.FIELD)
public class ClassRoomModel {
    @XmlElement(name="name")
    private String name;

    @XmlElement(name="student")
    private List<StudentModel> studentModelList;
}
复制代码

待转化classroom.xml

<?xml version="1.0" encoding="UTF-8"?>
<classRoom>
    <name>配置总名称</name>
    <student>
        <id>1</id>
        <name>张三</name>
        <sex>男</sex>
    </student>
    <student>
        <id>2</id>
        <name>李四</name>
        <sex>女</sex>
    </student>
</classRoom>

复制代码






请到「今天看啥」查看全文