java XML转JSON格式
2024-10-12 02:40:22
标签: XML转Json json
分类:
【J2SE基础】(20)
代码如下所示,从这个例子中发现了代码库的重要性,如果建立一个自己的代码库,就可以直接从自己的代码库中取出来,这样需要什么就可以随时的取出来.代码库要保证的是规范性和正确性,并且有简单的模块注释.
这是今天在网上找到的XML转json格式的代码,人家封装的很快,节省了我很多时间啊.
- import java.io.ByteArrayInputStream;
- import java.io.File;
- import java.io.InputStream;
- import java.util.HashMap;
- import java.util.LinkedList;
- import java.util.List;
- import java.util.Map;
- import net.sf.json.JSONObject;
- import org.jdom.Document;
- import org.jdom.Element;
- import org.jdom.input.SAXBuilder;
- public class Xml2JsonUtil {
- /**
- * 转换一个xml格式的字符串到json格式
- *
- * @param xml
- * xml格式的字符串
- * @return 成功返回json 格式的字符串;失败反回null
- */
- @SuppressWarnings("unchecked")
- public static String xml2JSON(String xml) {
- JSONObject obj = new JSONObject();
- try {
- InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));
- SAXBuilder sb = new SAXBuilder();
- Document doc = sb.build(is);
- Element root = doc.getRootElement();
- obj.put(root.getName(), iterateElement(root));
- return obj.toString();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- /**
- * 转换一个xml格式的字符串到json格式
- *
- * @param file
- * java.io.File实例是一个有效的xml文件
- * @return 成功反回json 格式的字符串;失败反回null
- */
- @SuppressWarnings("unchecked")
- public static String xml2JSON(File file) {
- JSONObject obj = new JSONObject();
- try {
- SAXBuilder sb = new SAXBuilder();
- Document doc = sb.build(file);
- Element root = doc.getRootElement();
- obj.put(root.getName(), iterateElement(root));
- return obj.toString();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- /**
- * 一个迭代方法
- *
- * @param element
- * : org.jdom.Element
- * @return java.util.Map 实例
- */
- @SuppressWarnings("unchecked")
- private static Map iterateElement(Element element) {
- List jiedian = element.getChildren();
- Element et = null;
- Map obj = new HashMap();
- List list = null;
- for (int i = 0; i < jiedian.size(); i++) {
- list = new LinkedList();
- et = (Element) jiedian.get(i);
- if (et.getTextTrim().equals("")) {
- if (et.getChildren().size() == 0)
- continue;
- if (obj.containsKey(et.getName())) {
- list = (List) obj.get(et.getName());
- }
- list.add(iterateElement(et));
- obj.put(et.getName(), list);
- } else {
- if (obj.containsKey(et.getName())) {
- list = (List) obj.get(et.getName());
- }
- list.add(et.getTextTrim());
- obj.put(et.getName(), list);
- }
- }
- return obj;
- }
- // 测试
- public static void main(String[] args) {
- System.out.println( Xml2JsonUtil.xml2JSON("<MapSet>"
- + "<MapGroup id='Sheboygan'>" + "<Map>"
- + "<Type>MapGuideddddddd</Type>"
- + "<SingleTile>true</SingleTile>" + "<Extension>"
- + "<ResourceId>ddd</ResourceId>" + "</Extension>" + "</Map>"
- + "<Map>" + "<Type>ccc</Type>" + "<SingleTile>ggg</SingleTile>"
- + "<Extension>" + "<ResourceId>aaa</ResourceId>"
- + "</Extension>" + "</Map>" + "<Extension />" + "</MapGroup>"
- + "<ddd>" + "33333333" + "</ddd>" + "<ddd>" + "444" + "</ddd>"
- + "</MapSet>"));
- }
- }
所需要的jar包在我的资源地址:http://download.csdn.net/detail/lovesummerforever/7376755
http://blog.csdn.net/lovesummerforever/article/details/26396465
http://hanyi366.iteye.com/blog/1162365
- 顶
- 0
- 踩
- 0
最新文章
- How to build a NFS Service
- JAVA--继承
- js判断是否是移动设备登陆网页
- Laravel5.1-错误和日志
- 严重: Exception starting filter struts2解决方法!
- SQL 删除存在于A表但是不存在B表中的记录
- Asp.net MVC 版本简史
- 1024PHP数组
- 【freemaker】之Unknown built-in variable: now
- Heritrix源码分析(六) Heritrix的文件结构分析(转)
- HHVM简介(译)
- 查询语句,按照时间排序,取前N条
- Windows服务之启动、停止、暂停、继续
- 深度学习 for java http://deeplearning4j.org/
- JavaScript 中对变量和函数声明的“提前(hoist)”
- mysql zip 版安装
- java笔记----获取电脑上ip(内网ip)
- ssh远程登陆脚本(带跳板机)
- tp3.2多个或者并且语句语法
- 开源的,跨平台的.NET机器学习框架ML.NET
热门文章
- struts2获得提交是get还是post方法提交
- Android中如何将Bitmap byte裸数据转换成Bitmap图片int数据
- if __name__ == &#39;__main__&#39;在python中的应用
- [转]慎用InputStream的read()方法
- monkeyrunner对比屏幕局部图像.getSubImage()
- android代码实现免提功能
- dev GridControl直接打印 纵向合并单元格
- Codeforces Round #361 (Div. 2) C.NP-Hard Problem
- Kyoto Cabinet--nosql型单机数据库
- 使用print2flash开发在线文档