java中xml与object互转(笔记)

object转xml:

需要转换的object需要在类名上实现@XmlRootElement

解析的xml结构为

<类名>

    <属性></属性>

    ....

</类名>

如果需要别名,可以@XmlRootElement(name="别名")

属性别名,在属性的get方法上加上@XmlElement(name="别名")

解析顺序默认按字母顺序,如果需要制定顺序

@XmlType(propOrder = {"属性1", "属性2",。。。})

使用XmlType时,如果有XmlElement,必须写上

包:import javax.xml.bind.*

实例(object转xml):

        JAXBContext context = JAXBContext.newInstance(cls);
        Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_ENCODING,"utf-8");//编码格式
        marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);//是否省略xml头信息,默认false
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);//是否格式化生成的xml串,默认false
        Writer writer = new StringWriter();
        marshaller.marshal(obj, writer);

实例(xml转object):

        JAXBContext context = JAXBContext.newInstance(cls);//需要转换的类.calss
        Unmarshaller unmarshaller = context.createUnmarshaller();
        return unmarshaller.unmarshal(new StringReader(xml));//xml字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值