使用JAXB 將javabean 轉化爲xml對象

最近作微信支付  須要傳遞xml格式的數據。java

以前都是用map<String,String>轉xml 感受把對象屬性再put到map裏 很麻煩。 就想有沒有能直接從javabean 到 xml的方法,網上一搜還真的有。微信

首先javabean 要添加@XmlRootElemen註解  由於微信要求,不加的話最外層就是類名。app

@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);

輸出結果:ui

相關文章
相關標籤/搜索