JSONObject.fromObject需要的有额外的6个包,必不可少,一定要注意:
commons-beanutils-1.9.2.jar? ? ?
commons-collections-3.2.2.jar
commons-lang-2.6.jar
commons-logging-1.2.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar
?
?
?
?
package com.ekingwin.bas.xmljson.utils;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import net.sf.json.xml.XMLSerializer;
public class xmljson
{
public static String xmlToJson(String xmlContent)
{
if ((xmlContent == null) || ("".equals(xmlContent)))
{
return "";
}
xmlContent = xmlContent.replace("r","");
xmlContent = xmlContent.replace("n","");
xmlContent = xmlContent.replace("t","");
xmlContent = xmlContent.replace(" ","");
xmlContent = xmlContent.replace("<ITEM>"," <ITEM>");
xmlContent = xmlContent.replace("xmlns"," xmlns");
xmlContent = xmlContent.replace("<e xmlns="http://byd.eai.sap" class="object">"," <e xmlns="http://byd.eai.sap" class="object">");
String jsonContent = "";
XMLSerializer xmlSerializernew = new XMLSerializer();
xmlSerializernew.setSkipNamespaces(true);
xmlSerializernew.setRemoveNamespacePrefixFromElements(true);
jsonContent = xmlSerializernew.read(xmlContent.toString()).toString();
jsonContent = jsonContent.replace("null","""").replace("[]","""");
return jsonContent;
}
?
public static String jsonToXml(String jsonContent)
{
String xmlContent = "";
XMLSerializer xmlSerializernew = new XMLSerializer();
xmlSerializernew.setTrimSpaces(true);
if ((jsonContent.startsWith("[")) && (jsonContent.endsWith("]")))
{
jsonContent =jsonContent.replaceAll(":s*(d+.d+)",":"$1"");
xmlContent = xmlSerializernew.write(JSONArray.fromObject(jsonContent));
xmlContent = xmlContent.replace("<e class="object">","<ITEM>");
xmlContent = xmlContent.replace("<e type="number">","<ITEM>");
xmlContent = xmlContent.replace("</e>","</ITEM>");
xmlContent = xmlContent.replace("<o>","");
xmlContent = xmlContent.replace("</o>","");
xmlContent = xmlContent.replace(" class="object"","");
xmlContent = xmlContent.replace(" type="string"","");
xmlContent = xmlContent.replace(" class="array"","");
xmlContent = xmlContent.replace(" null="true"","");
xmlContent = xmlContent.replace(" type="number"","");
}
else {
jsonContent =jsonContent.replaceAll(":s*(d+.d+)",":"$1"");
xmlContent = xmlSerializernew.write(JSONSerializer.toJSON(jsonContent));
xmlContent = xmlContent.replace("<e class="object">","<ITEM>");
xmlContent = xmlContent.replace("</e>","");
}
return xmlContent;
}
public static void main(String[] args) {
String a = "{"Request": {rn" +
" "head": {rn" +
" "BIZTRANSACTIONID": "qwertyuioplkjhgfd",rn" +
" "COUNT": "1",rn" +
" "CONSUMER": "ERP",rn" +
" "SRVLEVEL": "1",rn" +
" "ACCOUNT": "",rn" +
" "PASSWORD": ""rn" +
"},rn" +
"rn" +
" "List": [{rn" +
" "id": 1.78978979,rn" +
" "name": 3546545646.23165778789,rn" +
" "phone": 12345678,rn" +
" "address": 66554.3689745,rn" +
" "mail": "[email?protected]"rn" +
" }rn" +
" ]rn" +
"}rn" +
"}";
String b = "<Request><List><ITEM><address>66554.3689745</address><id>1.78978979</id><mail>[email?protected]</mail><name>3546545646.23165778789</name><phone>12345678</phone></ITEM></List><head><ACCOUNT/><BIZTRANSACTIONID>qwertyuioplkjhgfd</BIZTRANSACTIONID><CONSUMER>ERP</CONSUMER><COUNT>1</COUNT><PASSWORD/><SRVLEVEL>1</SRVLEVEL></head></Request>rn" + ""; System.out.println(jsonToXml(a)); System.out.println(xmlToJson(a));}}