标签: 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取随机数 explode劫取字符串 时间定义随机数

    php取随机数 <?phpfunction randomkeys($length){ $pattern='1234567890'; for($i=0;$i<$length;$i++) {  ...

  2. linux系统tomcat项目部署和tomcat访问日志

    一.只用ip地址访问 先把端口号改成80,然后用 <Host name="localhost"  appBase="webapps"    137     ...

  3. C#,js数据排序及其操作

    List<int> listint=new List<int>{2,1,7,3,8,5,4,6};listint.Sort((x, y) => x - y); var a ...

  4. 使用Qt报错error while building deploying project

    方法一:点击左侧的“项目”栏,看“构建目录”栏的路径,一定要注意,在路径中一定不要出现汉字,否则一定会报“error while building deploying project”的错误. 方法二 ...

  5. Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a9转自http://www.linuxidc.com/Linux/2012-02/53113.htm

    1.概述 不管程序性能有多高,机器处理能力有多强,都会有其极限.能够快速方便的横向与纵向扩展是Nut设计最重要的原则,以此原则形成以分布式并行计算为核心的架构设计.以分布式并行计算为核心的架构设计是N ...

  6. java socket网络编程(多线程技术)

    Client.java import java.io.*; import java.net.*; import java.util.*; public class Client { public st ...

  7. [转]Linux下CodeBlocks的交叉编译

    原文链接:http://blog.sina.com.cn/s/blog_602f87700100kujh.html Sam一直是Makefile流,这些天需要移植一些游戏引擎模块.这些模块在其它嵌入式 ...

  8. GridView规则显示图片

    首先是自定义的GridVIew,ListView嵌套GridVIew时必须自定义GridVIew,不嵌套时可以不用.这里的GridView会根据图片多少自动调节大小 //自定义的GridView ,以 ...

  9. cordova插件开发-1

    这是初级编,实现了js调用Android代码 首先需要编写java代码: public class AppUpdate extends CordovaPlugin { @Override public ...

  10. MySQL架构优化:定时计划任务与表分区

    转自: MySQL架构优化实战系列3:定时计划任务与表分区 - 今日头条(TouTiao.com)http://toutiao.com/a6304736482361049345/?tt_from=mo ...