使用JAXB 将javabean 转化为xml对象

最近做微信支付  需要传递xml格式的数据。

之前都是用map<String,String>转xml 感觉把对象属性再put到map里 很麻烦。 就想有没有能直接从javabean 到 xml的方法,网上一搜还真的有。

首先javabean 要添加@XmlRootElemen注解  因为微信要求,不加的话最外层就是类名。

@XmlRootElement(name = "xml",namespace="")
public class WxPayTransfer {
    private String mch_appid;
    private String mchid;
    private String nonce_str;
    private String sign;
    private String partner_trade_no;
    private String openid;
    private String check_name;
    private String re_user_name;
    private String amount;
    private String desc;
    private String spbill_create_ip;

}

然后 使用java自带的包  JAXBContent 就可以简单实现

WxPayTransfer obj=WxPayTransfer.builder()
        .mch_appid("appid")
        .mchid("123456")
        .nonce_str("test")
        .build();

JAXBContext jb=  JAXBContext.newInstance(WxPayTransfer.class);
Marshaller marshaller = jb.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);//格式化
marshaller.setProperty(Marshaller.JAXB_FRAGMENT,true); //去掉第一行声明
marshaller.marshal(obj, sw);
String xml=sw.toString();
System.out.println(xml);

输出结果:

f617c7bbfe24db08c95815896a6f14f505c.jpg

转载于:https://my.oschina.net/u/3391681/blog/3061757

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值