最近作微信支付 須要傳遞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