现在主流的数据格式为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();
}
最后如果有什么不对还请多多指教