旁白:

最近关于xml与json之间的转换都搞蒙了,这里写一个demo,以后备用。

正题:

project格式是:

jar包是一个一个检出来的,还算干净了。

代码:

工具类:

  1. package exercise.xml;
  2.  
  3. import net.sf.json.JSON;
  4. import net.sf.json.JSONSerializer;
  5. import net.sf.json.xml.XMLSerializer;
  6.  
  7. import org.jdom.Document;
  8.  
  9. public class XmlExercise {
  10.  
  11. /**
  12. * 将xml字符串<STRONG>转换</STRONG>为JSON字符串
  13. *
  14. * @param xmlString
  15. * xml字符串
  16. * @return JSON<STRONG>对象</STRONG>
  17. */
  18. public static String xml2json(String xmlString) {
  19. XMLSerializer xmlSerializer = new XMLSerializer();
  20. JSON json = xmlSerializer.read(xmlString);
  21. return json.toString();
  22. }
  23.  
  24. /**
  25. * 将xmlDocument<STRONG>转换</STRONG>为JSON<STRONG>对象</STRONG>
  26. *
  27. * @param xmlDocument
  28. * XML Document
  29. * @return JSON<STRONG>对象</STRONG>
  30. */
  31. public static String xml2json(Document xmlDocument) {
  32. return xml2json(xmlDocument.toString());
  33. }
  34.  
  35. /**
  36. * JSON(数组)字符串<STRONG>转换</STRONG>成XML字符串
  37. *
  38. * @param jsonString
  39. * @return
  40. */
  41. public static String json2xml(String jsonString) {
  42. XMLSerializer xmlSerializer = new XMLSerializer();
  43. return xmlSerializer.write(JSONSerializer.toJSON(jsonString));
  44. // return xmlSerializer.write(JSONArray.fromObject(jsonString));//这种方式只支持JSON数组
  45. }
  46.  
  47. }

测试类:

  1. package exercise.xml;
  2.  
  3. import net.sf.json.JSONArray;
  4. import net.sf.json.JSONObject;
  5.  
  6. public class XmlTest extends XmlExercise {
  7.  
  8. public static void main(String[] args) {
  9.  
  10. JSONObject jsonObject = new JSONObject();
  11. jsonObject.put("username", "horizon");
  12. JSONArray jsonArray = new JSONArray();
  13. JSONObject dataJson = new JSONObject();
  14. jsonArray.add(jsonObject);
  15. //jsonArray.add(jsonObject);
  16. dataJson.put("data", jsonArray);
  17. System.out.println(dataJson.toString());
  18.  
  19. String xml = json2xml(dataJson.toString());
  20. System.out.println("xml:" + xml);
  21. String str = xml2json(xml);
  22. System.out.println("to_json" + str);
  23.  
  24. }
  25. }

java中Xml、json之间的相互转换的更多相关文章

  1. php中 xml json 数组 之间相互转换

    php中 xml json  数组 之间相互转换 1 数组转json $result = array( 'status' =>$status, 'message'=>$message, ' ...

  2. JavaScriptES6中Map与对象、数组,JSON之间的相互转换

    JavaScriptES6中Map与对象.数组,JSON之间的相互转换 https://blog.csdn.net/c__dreamer/article/details/82183130

  3. JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson

    java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fast ...

  4. .Net中XML,JSON的几种处理方式

    一.XML: 1.基本了解: xml,Extensible markup language可扩展标记语言,用于数据的传输或保存,特点,格式非常整齐数据清晰明了,并且任何语言都内置了xml分析引擎, 不 ...

  5. Java中XML格式的字符串4读取方式的简单比较

    Java中XML格式的字符串4读取方式的简单比较 1.java自带的DOM解析. import java.io.StringReader; import javax.xml.parsers.Docum ...

  6. JAVA中使用JSON进行数据传递

    最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作. 其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JS ...

  7. 转载:JAVA中使用JSON进行数据传递

    转载网址:http://www.cnblogs.com/undead/archive/2012/07/18/2594900.html 最近在做一个基于JAVA Servlet的WEB应用以及对应的An ...

  8. C#对象与XMl文件之间的相互转换(转)

    本文是对C#中对象与XMl文件之间的相互转换进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 C#提供三种序列化方式,分别为:1.是使用BinaryFormatter进行串行化: 2.使 ...

  9. 第70节:Java中xml和tomcat

    第70节:Java中xml和tomcat 前言: 哭着也要看完,字数: jdbc crud - statement dao java.sql.Driver The interface that eve ...

  10. JAVA中JavaBean对象之间属性拷贝的方法

    JAVA中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,对于这种情况,可以采用以下几个简便方法处理. 下面对这 ...

随机推荐

  1. 五十七 POP3收取邮件

    SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上.收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3. Python ...

  2. 【转载】LinearLayout 源码分析

    原文地址:https://github.com/razerdp/AndroidSourceAnalysis/blob/master/LinearLayout/android_widget_Linear ...

  3. Outlook Font

  4. 【hihoCoder 第133周】【hihoCoder 1467】2-SAT·hihoCoder音乐节

    http://hihocoder.com/problemset/problem/1467 2-sat模板...详细的题解请看题目里的提示. tarjan模板打错again致命伤qwq #include ...

  5. [xsy2880]取石子游戏

    题意:有$n$堆石子,每堆石子数量相同,以质因数分解给出,不停地从$1$到$n$依次拿石子,使得取完后石子个数为原来的因数(不能不取),当一堆只剩$1$个时结束,问在每堆石子结束的方案数 记石子个数为 ...

  6. 【二项式定理】【推导】计蒜客17115 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B. Coin

    题意:投一枚硬币向上的概率是q/p.问你投K枚硬币,向上的枚数为偶数枚的概率是? 要求的即为. 这个东西是个二项展开式的偶数项系数和,来,我们复习一下高中数学,设f(x)=(ax+b)^n,则其偶数项 ...

  7. 【构造】CDOJ1607 大学生足球联赛

    请自行百度逆时针轮转法 //单循环赛 逆时针轮转法 #include<cstdio> using namespace std; int n,a[70]; int main(){ scanf ...

  8. python 多继承详解

    class A(object): # A must be new-style class def __init__(self): print "enter A" print &qu ...

  9. [JSOI2018]军训列队

    [JSOI2018]军训列队 题目大意: \(n(n\le5\times10^5)\)个学生排成一排,第\(i\)个学生的位置为\(a_i\).\(m(m\le5\times10^5)\)次命令,每次 ...

  10. php红包

    /**   转http://www.oschina.net/code/snippet_1392428_54532     谢谢 php_fangting * @param $total [你要发的红包 ...