博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml字符串转json字符串
阅读量:5352 次
发布时间:2019-06-15

本文共 3344 字,大约阅读时间需要 11 分钟。

XML字符串转JSON字符串网上的方法很多,这里主要推荐两种:

1、使用org.json包

jar地址:http://mvnrepository.com/artifact/org.json/json

示例代码:

import org.json.JSONException;import org.json.JSONObject;import org.json.XML;public class JsonUtils {     public static String xml2jsonString(String xml)throws JSONException{     JSONObject xmlJSONObj = XML.toJSONObject(xml);     return xmlJSONObj.toString();     }}

2、使用org.jdom包

jar地址:http://www.jdom.org/

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("
" + "
" + "
" + "
MapGuideddddddd
" + "
true
" + "
" + "
ddd
" + "
" + "
" + "
" + "
ccc
" + "
ggg
" + "
" + "
aaa
" + "
" + "
" + "
" + "
" + "
" + "33333333" + "
" + "
" + "444" + "
" + "
")); }}
参考:

1)http://blog.csdn.net/lovesummerforever/article/details/26396465

2)http://blog.csdn.net/duguwuyi/article/details/51500852

转载于:https://www.cnblogs.com/archermeng/p/7537154.html

你可能感兴趣的文章
MySQL各存储引擎
查看>>
项目--简单导出CSV文件
查看>>
Oracle session相关数据字典(一)
查看>>
织梦文章内容提取第一张或者多张图片输出
查看>>
C#用正则表达式 获取网页源代码标签的属性或值
查看>>
BZOJ 3399 [Usaco2009 Mar]Sand Castle城堡(贪心)
查看>>
WCF(一) 简单的认知
查看>>
[MFC][DShow]简单例子
查看>>
降序排列
查看>>
十一、类型转换
查看>>
面试内容,值得一看
查看>>
UILabel
查看>>
【热门技术】三种SEO方式
查看>>
[Hades_技术]哈迪斯初级技术应用
查看>>
SQLiteOpenHelper
查看>>
Luogu P1141 01迷宫【搜索/dfs】By cellur925
查看>>
js onclick事件传参
查看>>
WiCloud 商业Wi-Fi管理平台
查看>>
团队项目--未完待续
查看>>
双重标准,我该怎么解决
查看>>