实现JOSN与Xml的相互转换

现在主流的数据格式为Json格式,但是我们如果对接银行等金融方面的接口这时候就会必须要求我们格式为Xml格式的报文,这个时候我们如何解决呢?

代码如下:

                <dependency>
		    <groupId>xom</groupId>
		    <artifactId>xom</artifactId>
		    <version>1.2.5</version>
		</dependency>
                import net.sf.json.JSONObject;
                import net.sf.json.xml.XMLSerializer;

                public class JsonToXml {
	
	            public static String xml2JSON(String xml) {
		        return new XMLSerializer().read(xml).toString();
	            }
	
	            public static String json2XML(String json){
		       JSONObject jobj = JSONObject.fromObject(json);
		       String xml =  new XMLSerializer().write(jobj);
		       return xml;
	            }
	
                 }



上面方法中的json转Xml并不提倡大家使用,因为会在xml报文多出数据类型的属性,这些我们可能并不需要,而xml转成json的方法是不错的,大家可以使用,如果必须将json转成xml那可手动拼接或者使用dom4j之类的技术,手动拼接方法类似如下

	    /**
	     * 单层json 将json转xml结构
	     * @param json
	     * @return
	     */
	    private String jsonToXmlUtil(JSONObject json){
		JSONObject joParam = JSONObject.fromObject(json.toString()).discard("method");
		Iterator it = joParam.keys();
		StringBuffer sb = new StringBuffer();
		while(it.hasNext()){
			String key = (String) it.next();
			String value = joParam.optString(key);
			sb.append("<").append(key).append(">").append(value).append("</").append(key).append(">");
		}
		return sb.toString();
	    }


最后如果有什么不对还请多多指教

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值