温浩然

吾志所向,一往无前; 愈挫愈奋,再接再厉。

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文件的方法,看我另一篇日志。

阅读更多
版权声明:欢迎转载 https://blog.csdn.net/u012246342/article/details/49907199
文章标签: xmltujson
个人分类: xml json
想对作者说点什么? 我来说一句

json parse

2015年09月20日 2.92MB 下载

php xmljson和array

2009年06月30日 2KB 下载

xmljson所需要的jar包

2018年01月10日 1.26MB 下载

封装的转json

2012年11月06日 7KB 下载

java实现xmlToJson

2017年10月25日 9KB 下载

没有更多推荐了,返回首页

不良信息举报

XML转JSON

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭