XStream

  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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值