Java 解析微信接口返回xml字符串的方法

该代码片段展示了如何使用Java处理XML字符串,将其转换成Map对象,进一步转化为JSONObject。主要涉及XML解析、DOM操作以及JSON对象的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static void main(String[] args) {
		String str = "<xml>\n" +
				"   <return_code><![CDATA[SUCCESS]]></return_code>\n" +
				"   <return_msg><![CDATA[OK]]></return_msg>\n" +
				"   <appid><![CDATA[wx2421b1c4370ec43b]]></appid>\n" +
				"   <mch_id><![CDATA[10000100]]></mch_id>\n" +
				"   <device_info><![CDATA[1000]]></device_info>\n" +
				"   <nonce_str><![CDATA[TN55wO9Pba5yENl8]]></nonce_str>\n" +
				"   <sign><![CDATA[BDF0099C15FF7BC6B1585FBB110AB635]]></sign>\n" +
				"   <result_code><![CDATA[SUCCESS]]></result_code>\n" +
				"   <openid><![CDATA[oUpF8uN95-Ptaags6E_roPHg7AG0]]></openid>\n" +
				"   <is_subscribe><![CDATA[Y]]></is_subscribe>\n" +
				"   <trade_type><![CDATA[MICROPAY]]></trade_type>\n" +
				"   <bank_type><![CDATA[CCB_DEBIT]]></bank_type>\n" +
				"   <total_fee>1</total_fee>\n" +
				"   <fee_type><![CDATA[CNY]]></fee_type>\n" +
				"   <transaction_id><![CDATA[1008450740201411110005820873]]></transaction_id>\n" +
				"   <out_trade_no><![CDATA[1415757673]]></out_trade_no>\n" +
				"   <attach><![CDATA[订单额外描述]]></attach>\n" +
				"   <time_end><![CDATA[20141111170043]]></time_end>\n" +
				"   <trade_state><![CDATA[SUCCESS]]></trade_state>\n" +
				"</xml>";
		Map<String, Object> map = readStringXmlOut(str);
		JSONObject jsonObject = new JSONObject(map);
		System.out.println(jsonObject.toJSONString());
	}
/**
	 * 将xml字符串转换成map
	 * @param xml xml数据
	 * @return Map
	 */
	public static Map<String,Object> readStringXmlOut(String xml) {
		Map<String,Object> map = new HashMap<String,Object>();
		try {
			Document doc = DocumentHelper.parseText(xml);
			Element root = doc.getRootElement();
			Iterator it = root.elementIterator();
			while (it.hasNext()) {
				Element element = (Element) it.next();
				map.put(element.getName(), element.getTextTrim());
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}

		return map;
	}
//执行结果
{"appid":"wx2421b1c4370ec43b","attach":"订单额外描述","bank_type":"CCB_DEBIT","device_info":"1000","fee_type":"CNY","is_subscribe":"Y","mch_id":"10000100","nonce_str":"TN55wO9Pba5yENl8","openid":"oUpF8uN95-Ptaags6E_roPHg7AG0","out_trade_no":"1415757673","result_code":"SUCCESS","return_code":"SUCCESS","return_msg":"OK","sign":"BDF0099C15FF7BC6B1585FBB110AB635","time_end":"20141111170043","total_fee":"1","trade_state":"SUCCESS","trade_type":"MICROPAY","transaction_id":"1008450740201411110005820873"}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值