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("<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>"));
}
}

参考:

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

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

最新文章

  1. java web学习总结(五) -------------------servlet开发(一)
  2. 如何转换WMV到MP3,WMV到MP3播放器
  3. visio取消自动粘附
  4. java web 之 web.xml篇
  5. 性能测试工具Gatling - 设置Recorder
  6. VC与JavaScript交互(二) --- 调用JS函数
  7. http://blog.csdn.net/luxiaoyu_sdc/article/details/7333024
  8. 无法加载协定为“XXXWebServiceSoap”的终结点配置部分,因为找到了该协定的多个终结点配置
  9. NodeJs 实时压缩 项目js文件
  10. GNU C的使用
  11. 我两年的web开发生涯
  12. hy 的惩罚
  13. 2016年年终CSDN博客总结
  14. pyspider 启动错误遇到的一些坑
  15. 团队作业第六次——团队Github实战训练
  16. c# 串口关闭死机
  17. C# 使用 protobuf 进行对象序列化与反序列化
  18. 第一章 深入.NET框架
  19. InnoDB master thread工作原理
  20. 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释

热门文章

  1. Numa解释
  2. java链接redis服务器
  3. python pandas字符串函数详解(转)
  4. C#-类型转换和引用转换
  5. java实现图片文件与Base64的互转
  6. 题解 P1829 【[国家集训队]Crash的数字表格 / JZPTAB】
  7. java 用condition&amp;reentrylock实现生产者消费者
  8. scrapy补充-分布式爬虫
  9. oracle学习笔记(六)——函数&amp;存储过程的异同
  10. uboot对Flash和DDR的分区管理