java XML转JSON格式
来源:互联网 发布:网络彩票代理平台 编辑:程序博客网 时间:2024/05/22 02:00
需求:
服务器传回来XML数据,需要对XML数据进行解析,生成JSON文件
建立自己的资源库的重要性
所需要的jar包下载地址:http://download.csdn.net/detail/zk673820543/9511502
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>")); } }
这里的转换只能转换标签后面的内容,标签属性没有能够转换出来,格式也比较乱,建议使用net.sf.json来进行转换,也可以使用oxStream来进行转换
工具是人类的生产力
0 0
- java XML转JSON格式
- java XML转JSON格式
- java XML转JSON格式
- 字符串格式的xml转json格式
- python中将xml格式转json格式
- java xml转json
- JAVA json转xml
- Java json 转xml
- 【转】Struts2返回XML,JSON格式
- 数据传输格式xml/json
- xml装成json格式
- JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)
- JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)
- JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)
- JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)
- JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)
- java对象转json格式
- xml和JSON格式相互转换的Java实现
- HP-UX /usr/lib/dld.sl: Can't open shared library:解决办法
- 简单碰撞算法及其demo(屏幕气泡原理)
- 数组名及数组名的地址(还有一个小问题没解决)
- Segmentation Fault in Linux 原因与避免
- 高并发mysql update操作必定失败
- java XML转JSON格式
- 机器学习之——初识神经网络
- 屏幕适配
- 用小窗口循环扫描图像
- ffmpeg 从mp4上提取H264的nalu
- 微信开发学习总结(三)——开发微信公众号的最基本功能——普通消息的接收和回复
- 算法训练 传纸条
- springmvc集成shrio
- 收录几篇不错的文章