使用XStream实现Java对象转XML 以微信查询退款接口为例

Java核心编程
问题:在生产中有这样一种场景 想将一个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这个标签不必深究,就把它当做一样的,做微信开发的可以解释一波~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomas & Friends

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值