java XML转JSON格式

时间:2021-04-17 09:37:02
标签: XML转Json json
2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报
java XML转JSON格式 分类:
【J2SE基础】(20) java XML转JSON格式

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

这是今天在网上找到的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