使用JAXB 将javabean 转化为xml对象

原创
2019/06/13 18:46
阅读数 171

最近做微信支付  需要传递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);

输出结果:

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部