XStream

来源:互联网 发布:网络报警平台 编辑:程序博客网 时间:2024/04/28 05:06

  thought works提供的开源jar库,用于完成bean对象与xml文档之间的相互转换,也可完成bean与json的转换,bean无需提供get/set与默认无参构造器。

// 类名作为xml文档的根节点// @XStreamAlias用于指定根节点的别名,默认类全名@XStreamAlias("xx")public class Xx {    // 类属性默认作为根节点的子节点    // @XStreamAlias用于指定子节点的别名,默认属性名    @XStreamAlias("name")    private String name;    // @XStreamAsAttribute将属性作为根节点或上级节点的一个属性,而不再是子节点    @XStreamAsAttribute    @XStreamAlias("id")    private Integer id;    // map内的每个键值对,对应子节点yy内的一个entry子节点,key和value分别对应entry内的两个子节点    // <yy><entry><string>..</string><object>..</object></entry></yy>    @XStreamAlias("yy")    private Map<String, Object> yy;    // @XStreamImplicit可去掉外层的list节点,只列举List的元素,元素的名字可由itemFieldName指定    @XStreamImplicit(itemFieldName="str")    private List<String> Zz;    // @XStreamOmitField用于忽略age,阻止其序列化    @XStreamOmitField    private Integer age;    //get/set    ...    public static void main(String[] args) {        XStream xStream = new XStream();        // 将对象序列化为xml串        // 创建一个bean,bean的属性必须初始化,否则不能序列化        xStream.autodetectAnnotations(true);        Xx xx = new Xx();        xx.setKey("aa");        xx.setValue("bb");        String xmlStr = xStream.toXML(cd);        // 将xml串反序列化为对象        // 创建一个bean,由xml来初始化        xstream.alias("xx", ....Xx.class);        xstream.alias("name", ....String.class);        xstream.alias("id", ....Integer.class);        Xx xx= new Xx();        xx = (Xx) xstream.fromXML(xml字符串);    }}
0 0
原创粉丝点击