标签: XML转Json json
2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报
 分类:
【J2SE基础】(20) 

代码如下所示,从这个例子中发现了代码库的重要性,如果建立一个自己的代码库,就可以直接从自己的代码库中取出来,这样需要什么就可以随时的取出来.代码库要保证的是规范性和正确性,并且有简单的模块注释.

这是今天在网上找到的XML转json格式的代码,人家封装的很快,节省了我很多时间啊.

  1. import java.io.ByteArrayInputStream;
  2. import java.io.File;
  3. import java.io.InputStream;
  4. import java.util.HashMap;
  5. import java.util.LinkedList;
  6. import java.util.List;
  7. import java.util.Map;
  8. import net.sf.json.JSONObject;
  9. import org.jdom.Document;
  10. import org.jdom.Element;
  11. import org.jdom.input.SAXBuilder;
  12. public class Xml2JsonUtil {
  13. /**
  14. * 转换一个xml格式的字符串到json格式
  15. *
  16. * @param xml
  17. *            xml格式的字符串
  18. * @return 成功返回json 格式的字符串;失败反回null
  19. */
  20. @SuppressWarnings("unchecked")
  21. public static  String xml2JSON(String xml) {
  22. JSONObject obj = new JSONObject();
  23. try {
  24. InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));
  25. SAXBuilder sb = new SAXBuilder();
  26. Document doc = sb.build(is);
  27. Element root = doc.getRootElement();
  28. obj.put(root.getName(), iterateElement(root));
  29. return obj.toString();
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. return null;
  33. }
  34. }
  35. /**
  36. * 转换一个xml格式的字符串到json格式
  37. *
  38. * @param file
  39. *            java.io.File实例是一个有效的xml文件
  40. * @return 成功反回json 格式的字符串;失败反回null
  41. */
  42. @SuppressWarnings("unchecked")
  43. public static String xml2JSON(File file) {
  44. JSONObject obj = new JSONObject();
  45. try {
  46. SAXBuilder sb = new SAXBuilder();
  47. Document doc = sb.build(file);
  48. Element root = doc.getRootElement();
  49. obj.put(root.getName(), iterateElement(root));
  50. return obj.toString();
  51. } catch (Exception e) {
  52. e.printStackTrace();
  53. return null;
  54. }
  55. }
  56. /**
  57. * 一个迭代方法
  58. *
  59. * @param element
  60. *            : org.jdom.Element
  61. * @return java.util.Map 实例
  62. */
  63. @SuppressWarnings("unchecked")
  64. private static Map  iterateElement(Element element) {
  65. List jiedian = element.getChildren();
  66. Element et = null;
  67. Map obj = new HashMap();
  68. List list = null;
  69. for (int i = 0; i < jiedian.size(); i++) {
  70. list = new LinkedList();
  71. et = (Element) jiedian.get(i);
  72. if (et.getTextTrim().equals("")) {
  73. if (et.getChildren().size() == 0)
  74. continue;
  75. if (obj.containsKey(et.getName())) {
  76. list = (List) obj.get(et.getName());
  77. }
  78. list.add(iterateElement(et));
  79. obj.put(et.getName(), list);
  80. } else {
  81. if (obj.containsKey(et.getName())) {
  82. list = (List) obj.get(et.getName());
  83. }
  84. list.add(et.getTextTrim());
  85. obj.put(et.getName(), list);
  86. }
  87. }
  88. return obj;
  89. }
  90. // 测试
  91. public static void main(String[] args) {
  92. System.out.println(  Xml2JsonUtil.xml2JSON("<MapSet>"
  93. + "<MapGroup id='Sheboygan'>" + "<Map>"
  94. + "<Type>MapGuideddddddd</Type>"
  95. + "<SingleTile>true</SingleTile>" + "<Extension>"
  96. + "<ResourceId>ddd</ResourceId>" + "</Extension>" + "</Map>"
  97. + "<Map>" + "<Type>ccc</Type>" + "<SingleTile>ggg</SingleTile>"
  98. + "<Extension>" + "<ResourceId>aaa</ResourceId>"
  99. + "</Extension>" + "</Map>" + "<Extension />" + "</MapGroup>"
  100. + "<ddd>" + "33333333" + "</ddd>" + "<ddd>" + "444" + "</ddd>"
  101. + "</MapSet>"));
  102. }
  103. }

所需要的jar包在我的资源地址:http://download.csdn.net/detail/lovesummerforever/7376755

http://blog.csdn.net/lovesummerforever/article/details/26396465

http://hanyi366.iteye.com/blog/1162365

 
0

0

java XML转JSON格式的更多相关文章

  1. xml和JSON格式相互转换的Java实现

    依赖的包: json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar xom-1.2.1.jar commons-lang-2.1.jar commons-io-1.3.2.j ...

  2. java后台对json格式数据的解析

    Json 和 Jsonlib 的使用 什么是 Json JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式 ...

  3. fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map

    作者:buster2014 推荐:长安散人 fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map JSON字符串与Java对象的转换 1.将Java对象或Java ...

  4. 【.net 深呼吸】聊聊WCF服务返回XML或JSON格式数据

    有时候,为了让数据可以“跨国经营”,尤其是HTTP Web有关的东东,会将数据内容以 XML 或 JSON 的格式返回,这样一来,不管客户端平台是四大文明古国,还是处于蒙昧时代的原始部落,都可以使用这 ...

  5. fastJson java后台转换json格式数据

    什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...

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

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

  7. .net WebAPI返回xml、json格式

    WebAPI返回xml.json格式简单示例 using System.Net.Http.Formatting; public class TestController : ApiController ...

  8. Ajax中XML和JSON格式的优劣比较

    刚做完一个小的使用Ajax的项目.整个小项目使用JavaScript做客户端,使用PHP做服务器端.利用xmlHttpRequest组件作为交互工具,利用XML作为数据传输的格式.做完后基本做一个简单 ...

  9. 发送xml或json格式的数据给服务器

    后台通过context.Request.InputStream来接收 #region 发送消息 + void SendMessage() /// <summary> /// 发送消息 // ...

随机推荐

  1. php moungoDB

    moungoDB 语法 SQL查询语句 Mongo查询语句 CREATE TABLE USERS (a Number, b Number) 隐式的创建,或 MongoDB::createCollect ...

  2. 美团,点评,澎湃等APP的启示

    事先声明,因个人能力尚浅,文章若有不足之处,望留言指出,也欢迎成为好朋友. 本来想打算写团购类APP的竞品分析,但是发现不管是天天果园这样生鲜APP,还是澎湃这样的新闻资讯APP,思路差不多,都是: ...

  3. java int和Integer的区别

    今天偶然和同学讨论到int和Integer的区别是,发现自己对这个问题了解的并不是很清楚,而且有些概念还是错的,所以在这对int和Integer的区别做一个总结. int与integer的区别从大的方 ...

  4. 拖拽加点ui吧

    有一段时间没写东西了,真的是静下心来不容易的事情. 把之前的代码再翻看下,想想要加点ui什么的. 2d  塔防ui之前 我看过,但放到3d上做,其实难度是很大的. 不过,这不算什么,关键是 合理的 布 ...

  5. UIImage 和 UIImageView区别

    // // ViewController.m // 06-UIImage 和 UIImageView // // Created by Stephen on 16/4/18. // Copyright ...

  6. PAT (Advanced Level) 1094. The Largest Generation (25)

    简单DFS. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...

  7. L2,breakfast or lunch

    express: what a day多么糟糕的天气 I‘m coming to see you我将要来看你 what a lot of trouble he is causing他犯了多少错误啊 w ...

  8. android studio没有浮现函数用法和属性说明?

    最近转用android studio,在使用eclipse和android studio时原本在鼠标停留处或智能提示能浮现文档相关内容,但我的是一直显示Fetching Documentation…… ...

  9. SQL2005附加数据库时遇到的问题:用户组或角色在当前数据库已存在

    一次 附加备份数据库的 mdf 文件     成功后   创建登陆用户    但是  无法映射该用户的 对应数据库  出现 用户组或角色在当前数据库已存在 的问题 首先介绍一下sql server中“ ...

  10. zf-关于通知公告如果发布的是无限制时间的,那么默认隐藏时间输入框的问题

    function initElements(network){ var nonoticeLimit = document.getElementById("nonoticeLimit" ...