XML转JSON

惯例:

算了,习惯也是可以改的。我是温浩然。

需求,把一个XML格式文件,改成JSON格式。

代码如下:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
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 Xml2Json {

	public static void main(String[] args) {
		String path = "C://Users//whr-pc//Desktop//classpath//img//faceMap_ch.plist";  

		File file = new File(path);

		//生成JSON
		String strJSON = xml2JSON(file);

		//日志输出到指定文件中
		PrintStream out;
		try {
			out = new PrintStream("C://Users//whr-pc//Desktop//classpath//img//Systemout.txt");

			System.setOut(out);
			System.out.println(strJSON);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}  

	}

	public static String xml2JSON(File file) {
        JSONObject obj = new JSONObject();
        try {
            SAXBuilder sb = new SAXBuilder();
            Document doc = sb.build(file);
            String doc2str = doc.toString();
            System.out.println(doc2str);
            Element root = doc.getRootElement();
            obj.put(root.getName(), iterateElement(root));
            return obj.toString();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

	@SuppressWarnings({ "rawtypes", "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;
    } 

}

这个代码是可以复制出来用的,完全没有问题。

只是,我在导入JSON的jar包的时候,遇到了各种问题,每个问题,都是缺少jar包。

到最后,文中需要的jar包,剩下如图下的几个:

唉,剩下的也没测试删了可以不可以,应该是都必须要把。

其中,除了jdom-1.0.jar,别的好像都是JSON所需的jar包。

这些包,网上都有,自己下载吧,然后,运行就可以用了,运行单个java文件的方法,看我另一篇日志。

时间: 2024-12-11 00:23:37

XML转JSON的相关文章

SQL Server中XML与JSON应用比较

title: SQLServer · 特性分析 · SQL Server中XML与JSON应用比较 author: 石沫 背景 SQL Server是一种强大的数据库引擎,不仅性能卓越,稳定,功能还很强大,SQL Server 2016中已经支持JSON.这让我想到以前工作中经常使用的SQL XML,也对比一下他们几个关键领域的应用方法.这两种SQL特性,在实际的工作中也是常用的功能,特别是JSON在最近发展非常火爆,SQL Server也不落后,很快就在SQL Server2016支持. 广义

Swift学习笔记(2)网络数据交换格式(XML,JSON)解析 [iOS实战 入门与提高卷]

Swift学习笔记(2)网络数据交换格式(XML,JSON)解析 参考书籍及资源:iOS实战 入门与提高卷 关东升 参考书籍地址 用NSXML来解析XML文档 用TBXML来解析XML文档 用NSJSONSerialization来解析JSON文档 目录 Swift学习笔记2网络数据交换格式XMLJSON解析 目录 用NSXML来解析XML文档 示例文档Notesxml 创建XMLParser类 调用与运行结果 用TBXML来解析XML文档 准备工作 创建XMLParser类 调用与运行结果 用

不使用第三方包可以使用是么方法解析xml与json数据

问题描述 不使用第三方包可以使用是么方法解析xml与json数据 不使用第三方包可以使用是么方法解析xml与json数据! 不使用第三方包可以使用是么方法解析xml与json数据! 不使用第三方包可以使用是么方法解析xml与json数据! 解决方案 当初文件来查找解析.比较繁琐而已. 解决方案二: org.w3c.dom 就提供解析XML的接口.

Java工作利器之常用工具类(四)——Json工具类,使用正则支持xml与json互转

看到这个题目是不是大部分人都不屑一顾,的确基本上每个java程序猿都写过json工具类,也有很多人都使用json-lib.jar封装过类似的功能,但是我这里使用了正则来支持xml与json的互转,减少了jar包的引入.基本上满足了需求.当然如果你需要更强大的功能,还是最好使用json-lib来实现. 主要看一下工具类中的转换json和转换成xml的方法吧. 1. xml转json 具体就不多说了,我是采用的笨方法,多次使用正则进行替换的.比较好的一点儿是支持xml元素属性.如果xml节点有属性会

SQLServer · 特性分析 · SQL Server中XML与JSON应用比较

title: SQLServer · 特性分析 · SQL Server中XML与JSON应用比较 author: 石沫 背景 SQL Server是一种强大的数据库引擎,不仅性能卓越,稳定,功能还很强大,SQL Server 2016中已经支持JSON.这让我想到以前工作中经常使用的SQL XML,也对比一下他们几个关键领域的应用方法.这两种SQL特性,在实际的工作中也是常用的功能,特别是JSON在最近发展非常火爆,SQL Server也不落后,很快就在SQL Server2016支持. 广义

字符串json转换为xml xml转换json

原文:字符串json转换为xml xml转换json // To convert an XML node contained in string xml into a JSON string XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); string jsonText = JsonConvert.SerializeXmlNode(doc); // To convert JSON text contained in string js

php实现xml与json之间的相互转换功能实例_php技巧

本文实例讲述了php实现xml与json之间的相互转换功能.分享给大家供大家参考,具体如下: 用php实现xml与json之间的相互转换: 相关函数请查看php手册. 一.参考xml如下 <?xml version="1.0" encoding="UTF-8"?> <humans> <zhangying> <name>张三</name> <sex>男</sex> <old>

ASP.NET中XML转JSON的方法

原文:ASP.NET中XML转JSON的方法 许多应用程序都将数据存储为XML的格式,而且会将数据以JSON的格式发送到客户端以做进一步处理.要实现这一点,它们必须将XML格式转换为JSON格式.     XML转JSON代码   [csharp] view plaincopy   private static string XmlToJSON(XmlDocument xmlDoc)   {       StringBuilder sbJSON = new StringBuilder();  

在 AngularJS 中将 XML 转换为 JSON

在这篇文章中,我们将谈谈如何在Angular JS中将XML文件转换为JSON.大家都知道Angular JS是开发应用程序的JavaScript框架.所以基本上Angular  JS期望得 到的响应式JSON格式的.因此,在你开始对数据进行操作之前,建议返回JSON格式的数据.在这篇文章中,我们会使用Angular JS $http服务加载一个本地的XML文件,并将这个XML文件转换成JSON.如果你是Angular  JS新手,请阅读<Angular  JS>.希望你会喜欢这篇文章. 背景

简介Objective-C解析XML与JSON数据格式的方法_IOS

解析XML本文以解析本地XML为例,网络获取到的返回值只需转换成NSData型,解析是同理 需要解析的xml文件如下,users.xml <?xml version="1.0" encoding="UTF-8"?> <AllUsers> <message>用户信息</message> <user> <name>芳仔小脚印</name> <age>10</age>