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 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\"", "");
}
return xmlContent;
}

public static void main(String[] args) {
String a = "{\"Request\": {\r\n" +
" \"head\": {\r\n" +
" \"BIZTRANSACTIONID\": \"qwertyuioplkjhgfd\",\r\n" +
" \"COUNT\": \"1\",\r\n" +
" \"CONSUMER\": \"ERP\",\r\n" +
" \"SRVLEVEL\": \"1\",\r\n" +
" \"ACCOUNT\": \"\",\r\n" +
" \"PASSWORD\": \"\"\r\n" +
"},\r\n" +
"\r\n" +
" \"List\": [{\r\n" +
" \"id\": 1.78978979,\r\n" +
" \"name\": 3546545646.23165778789,\r\n" +
" \"phone\": 12345678,\r\n" +
" \"address\": 66554.3689745,\r\n" +
" \"mail\": \"321@test.com\"\r\n" +
" }\r\n" +
" ]\r\n" +
"}\r\n" +
"}";
String b = "<Request><List><ITEM><address>66554.3689745</address><id>1.78978979</id><mail>321@test.com</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>\r\n" +
"";
System.out.println(jsonToXml(a));
System.out.println(xmlToJson(a));
}
}

java xmltojson jsontoxml的更多相关文章

  1. JsonHelper developed by using Newtonsoft.Json.NET, Deserialize to <T> object , XmlToJson/JsonToXml, QuoteName by using JToken Path.

    namespace TestConsoleApplication { using System; using System.Diagnostics; using System.Threading; u ...

  2. node.js实用小模块

    1.浮点数操作 npm install float 2.MD5加密类 npm install MD5 3.xml解析类 1 npm install elementtree 4.转换字符串大小写 1 n ...

  3. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  4. java中json转xml

    参考:http://heipark.iteye.com/blog/1394844 需要json-lib-2.1-jdk15.jar和xom-1.2.5.jar,maven pom.xml如下: xml ...

  5. json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)

    1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http:// ...

  6. java中处理json各种各样转换方法

    JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...

  7. java下XML与JSON互相转换的Utils类

    原文:http://heipark.iteye.com/blog/1394844 需要json-lib-2.1-jdk15.jar和xom-1.2.5.jar,maven pom.xml如下: < ...

  8. Java xml和map,list格式的转换-摘抄

    import java.io.ByteArrayOutputStream; import java.util.ArrayList; import java.util.HashMap; import j ...

  9. JAVA 实现XML与JSON 相互转换

    原文地址https://blog.csdn.net/congcong68/article/details/39029907 在工作中,经常碰到XML转为JSON或者JSON转为XML,在这过程中有时嵌 ...

随机推荐

  1. (转)MyEclipse中使用git

    转:https://www.jianshu.com/p/92ee5c99d3a8 Myeclipse老版本可能需要安装一个插件,高版本中已经安装好了. 连接github 当然我们之前已经有仓库了,我们 ...

  2. appium 链接真机运行时报错

    今天用appium链接真机时,碰到的第一个问题:Attempt to re-install io.appium.settings without first uninstalling.(这是日志中显示 ...

  3. #define学习

    C语言中数据有常量和变量,其中定义常量主要有两种方法,这里主要学习#define定义常量的方法. 1.#define定义数字宏常量 例子如下: 1 2 3 4 5 6 7 8 9 10 #includ ...

  4. python 使用yaml模块

    python:yaml模块一.yaml文件介绍YAML是一种简洁的非标记语言.其以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁.1. yaml文件规则基本规则:    大小写敏感   ...

  5. pandas中的quantile函数

    https://blog.csdn.net/weixin_38617311/article/details/87893168 data.price.quantile([0.25,0.5,0.75]) ...

  6. vue事件修饰符(once:prev:stop)

    vue事件修饰符(once:prev:stop) stop修饰符  效果如下: 当你鼠标在这个div里的时候,x与y的值:会随着鼠标的变化而变化.但是当鼠标放在stopMoving的时候,x与y的值是 ...

  7. testNG官方文档翻译-5 测试方法,测试类和测试组

    5.1 - 测试方法 测试方法是被 @Test注解的方法.这些方法的返回值会被忽略,除非在testng.xml中将allow-return-values设置为true. <suite allow ...

  8. export export-default import 使用场景

    export export-default import 使用场景:https://blog.csdn.net/weixin_36222137/article/details/77453774

  9. Javascript连续赋值

    Javascript对象属于引用类型,将对象赋值给变量相当于将对象地址赋值给变量 let a = {n: 1}; let b = a; a.x = a = {n: 2}; //运算符的优先级 cons ...

  10. Spring整合Hibernate报错:annotatedClasses is not writable or has an invalid setter method

    Spring 整合Hibernate时报错: org.springframework.beans.factory.BeanCreationException: Error creating bean ...