问题:在生产中有这样一种场景 想将一个java对象转换为XML
举例如下:
<xml>
<appid><![CDATA[wx2421b1c4370ec43b]]></appid>
<mch_id><![CDATA[10000100]]></mch_id>
<nonce_str><![CDATA[TeqClE3i0mvn3DrK]]></nonce_str>
<out_refund_no_0><![CDATA[1415701182]]></out_refund_no_0>
<out_trade_no><![CDATA[1415757673]]></out_trade_no>
<refund_count>1</refund_count>
<refund_fee_0>1</refund_fee_0>
<refund_id_0><![CDATA[2008450740201411110000174436]]></refund_id_0>
<refund_status_0><![CDATA[PROCESSING]]></refund_status_0>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<sign><![CDATA[1F2841558E233C33ABA71A961D27561C]]></sign>
<transaction_id><![CDATA[1008450740201411110005820873]]></transaction_id>
</xml>
1、首先使用maven的依赖jar包
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.10</version>
</dependency>
2、创建java对象WechatPO,生产set、get方法,注释就不加了。
package com.qhyu.bugs;
public class WechatPO {
private String appid;
private String mch_id;
private String nonce_str;
private String out_refund_no_0;
private String out_trade_no;
private String refund_count;
private String refund_fee_0;
private String refund_id_0;
private String refund_status_0;
private String result_code;
private String return_code;
private String return_msg;
private String sign;
private String transaction_id;
public String getAppid() {
return appid;
}
public void setAppid(String appid) {
this.appid = appid;
}
public String getMch_id() {
return mch_id;
}
public void setMch_id(String mch_id) {
this.mch_id = mch_id;
}
public String getNonce_str() {
return nonce_str;
}
public void setNonce_str(String nonce_str) {
this.nonce_str = nonce_str;
}
public String getOut_refund_no_0() {
return out_refund_no_0;
}
public void setOut_refund_no_0(String out_refund_no_0) {
this.out_refund_no_0 = out_refund_no_0;
}
public String getOut_trade_no() {
return out_trade_no;
}
public void setOut_trade_no(String out_trade_no) {
this.out_trade_no = out_trade_no;
}
public String getRefund_count() {
return refund_count;
}
public void setRefund_count(String refund_count) {
this.refund_count = refund_count;
}
public String getRefund_fee_0() {
return refund_fee_0;
}
public void setRefund_fee_0(String refund_fee_0) {
this.refund_fee_0 = refund_fee_0;
}
public String getRefund_id_0() {
return refund_id_0;
}
public void setRefund_id_0(String refund_id_0) {
this.refund_id_0 = refund_id_0;
}
public String getRefund_status_0() {
return refund_status_0;
}
public void setRefund_status_0(String refund_status_0) {
this.refund_status_0 = refund_status_0;
}
public String getResult_code() {
return result_code;
}
public void setResult_code(String result_code) {
this.result_code = result_code;
}
public String getReturn_code() {
return return_code;
}
public void setReturn_code(String return_code) {
this.return_code = return_code;
}
public String getReturn_msg() {
return return_msg;
}
public void setReturn_msg(String return_msg) {
this.return_msg = return_msg;
}
public String getSign() {
return sign;
}
public void setSign(String sign) {
this.sign = sign;
}
public String getTransaction_id() {
return transaction_id;
}
public void setTransaction_id(String transaction_id) {
this.transaction_id = transaction_id;
}
}
3、开始动手
public static void main(String[] args) {
WechatPO wechatPO = new WechatPO();
wechatPO.setAppid("wx2421b1c4370ec43b");
wechatPO.setMch_id("10000100");
wechatPO.setNonce_str("TeqClE3i0mvn3DrK");
wechatPO.setOut_refund_no_0("1415701182");
wechatPO.setOut_trade_no("1415757673");
wechatPO.setRefund_count("1");
wechatPO.setRefund_fee_0("1");
wechatPO.setRefund_id_0("2008450740201411110000174436");
wechatPO.setRefund_status_0("PROCESSING");
wechatPO.setResult_code("SUCCESS");
wechatPO.setReturn_code("SUCCESS");
wechatPO.setReturn_msg("OK");
wechatPO.setSign("1F2841558E233C33ABA71A961D27561C");
wechatPO.setTransaction_id("1008450740201411110005820873");
//创建解析XML对象
XStream xStream = new XStream();
//设置别名, 默认会输出全路径
xStream.alias("xml", WechatPO.class);
//转为xml
String xml = xStream.toXML(wechatPO);
System.out.println(xml);
}
4、结果
<xml>
<appid>wx2421b1c4370ec43b</appid>
<mch__id>10000100</mch__id>
<nonce__str>TeqClE3i0mvn3DrK</nonce__str>
<out__refund__no__0>1415701182</out__refund__no__0>
<out__trade__no>1415757673</out__trade__no>
<refund__count>1</refund__count>
<refund__fee__0>1</refund__fee__0>
<refund__id__0>2008450740201411110000174436</refund__id__0>
<refund__status__0>PROCESSING</refund__status__0>
<result__code>SUCCESS</result__code>
<return__code>SUCCESS</return__code>
<return__msg>OK</return__msg>
<sign>1F2841558E233C33ABA71A961D27561C</sign>
<transaction__id>1008450740201411110005820873</transaction__id>
</xml>
注意:实例中CDATA这个标签不必深究,就把它当做一样的,做微信开发的可以解释一波~