前言
jaxb全称是Java Architecture for XML Binding,主要功能是绑定xml和java bean,内部使用注解来实现。
绑定流程
定义bean
定义bean需要用到框架提供的注解。
用于定义关系的注解
@XmlRootElement
指定根标签的bean名称和命名空间
@XmlAccessorType
指定访问数据的方式,有以下几种:
PROPERTY
:get/set方法FIELD
:所有的非静态属性PUBLIC_MEMBER
:get/set方法和公开属性NONE
:都不能访问
@XmlAttribute
指定标签内的属性
@XmlElement
指定嵌套标签的bean名称和命名空间
@XmlValue
指定标签中的值
转换代码
byte[] bytes = xml.getBytes();
Bean bean = JAXB.unmarshal(new ByteArrayInputStream(bytes), Bean.class);
String xml=null;
JAXB.marshal(bean, xml);
总结
总的来说还是比较简单,比json稍微复杂一点在于命名空间的指定,如果命名空间指定得不对,会反序列化不到数据。