jdk提供了JAXB来解析bean和xml之间的转换
常用注解
@XmlTransient:不参与序列化(有该注解表示瞬态,没有表示非瞬态)
@XmlAccessorType:控制字段或属性是否序列化
- XmlAccessorType.FIELD:类中的每个非静态、非瞬态字段将自动绑定到XML
- XmlAccessorType.NONE:没有字段或属性绑定到XML,除非使用特定的注解
- XmlAccessorType.PROPERTY:类中的getter / setter对将被自动绑定到XML,除了瞬态的
- XmlAccessorType.PUBLIC_MEMBER:默认的序列化。类中的公共getter / setter对和每个公共字段将被自动绑定到XML,除了瞬态的
@XmlAccessorOrder:控制类中字段和属性的顺序
- XmlAccessOrder.ALPHABETICAL:排序按照String.compareTo方法确定的字母顺序
- XmlAccessOrder.UNDEFINED:默认的排序。按照类中字段的顺序排序
@XmlType:将类或枚举类型映射到XML模式类型
- propOrder:自定义排序
@XmlRootElement:根目录,默认为类名称
@XmlAttribute:将类属性映射到XML属性,默认为字段名称
@XmlElement:将类属性映射到XML元素,默认为字段名称。当序列化为XmlAccessorType.NONE或修改映射名称时使用
@XmlElementRef:映射其他类属性到XML元素
example:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlAccessorOrder(XmlAccessOrder.ALPHABETICAL)
//@XmlType(propOrder = {"name", "id", "sex", "age"})
@XmlRootElement
public class User {
@XmlAttribute
private Long id;
@XmlElement(name = "nickname")
private String name;
private Integer age;
private Boolean sex;