`

java xml转json demo

    博客分类:
  • java
 
阅读更多
  1. import java.io.ByteArrayInputStream;  
  2. import java.io.File;  
  3. import java.io.InputStream;  
  4. import java.util.HashMap;  
  5. import java.util.LinkedList;  
  6. import java.util.List;  
  7. import java.util.Map;  
  8.   
  9. import net.sf.json.JSONObject;  
  10.   
  11. import org.jdom.Document;  
  12. import org.jdom.Element;  
  13. import org.jdom.input.SAXBuilder;  
  14.   
  15. public class Xml2JsonUtil {  
  16.     /** 
  17.      * 转换一个xml格式的字符串到json格式 
  18.      *  
  19.      * @param xml 
  20.      *            xml格式的字符串 
  21.      * @return 成功返回json 格式的字符串;失败反回null 
  22.      */  
  23.     @SuppressWarnings("unchecked")  
  24.     public static  String xml2JSON(String xml) {  
  25.         JSONObject obj = new JSONObject();  
  26.         try {  
  27.             InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));  
  28.             SAXBuilder sb = new SAXBuilder();  
  29.             Document doc = sb.build(is);  
  30.             Element root = doc.getRootElement();  
  31.             obj.put(root.getName(), iterateElement(root));  
  32.             return obj.toString();  
  33.         } catch (Exception e) {  
  34.             e.printStackTrace();  
  35.             return null;  
  36.         }  
  37.     }  
  38.   
  39.     /** 
  40.      * 转换一个xml格式的字符串到json格式 
  41.      *  
  42.      * @param file 
  43.      *            java.io.File实例是一个有效的xml文件 
  44.      * @return 成功反回json 格式的字符串;失败反回null 
  45.      */  
  46.     @SuppressWarnings("unchecked")  
  47.     public static String xml2JSON(File file) {  
  48.         JSONObject obj = new JSONObject();  
  49.         try {  
  50.             SAXBuilder sb = new SAXBuilder();  
  51.             Document doc = sb.build(file);  
  52.             Element root = doc.getRootElement();  
  53.             obj.put(root.getName(), iterateElement(root));  
  54.             return obj.toString();  
  55.         } catch (Exception e) {  
  56.             e.printStackTrace();  
  57.             return null;  
  58.         }  
  59.     }  
  60.   
  61.     /** 
  62.      * 一个迭代方法 
  63.      *  
  64.      * @param element 
  65.      *            : org.jdom.Element 
  66.      * @return java.util.Map 实例 
  67.      */  
  68.     @SuppressWarnings("unchecked")  
  69.     private static Map  iterateElement(Element element) {  
  70.         List jiedian = element.getChildren();  
  71.         Element et = null;  
  72.         Map obj = new HashMap();  
  73.         List list = null;  
  74.         for (int i = 0; i < jiedian.size(); i++) {  
  75.             list = new LinkedList();  
  76.             et = (Element) jiedian.get(i);  
  77.             if (et.getTextTrim().equals("")) {  
  78.                 if (et.getChildren().size() == 0)  
  79.                     continue;  
  80.                 if (obj.containsKey(et.getName())) {  
  81.                     list = (List) obj.get(et.getName());  
  82.                 }  
  83.                 list.add(iterateElement(et));  
  84.                 obj.put(et.getName(), list);  
  85.             } else {  
  86.                 if (obj.containsKey(et.getName())) {  
  87.                     list = (List) obj.get(et.getName());  
  88.                 }  
  89.                 list.add(et.getTextTrim());  
  90.                 obj.put(et.getName(), list);  
  91.             }  
  92.         }  
  93.         return obj;  
  94.     }  
  95.   
  96.     // 测试  
  97.     public static void main(String[] args) {  
  98.         System.out.println(  Xml2JsonUtil.xml2JSON("<MapSet>"  
  99.                 + "<MapGroup id='Sheboygan'>" + "<Map>"  
  100.                 + "<Type>MapGuideddddddd</Type>"  
  101.                 + "<SingleTile>true</SingleTile>" + "<Extension>"  
  102.                 + "<ResourceId>ddd</ResourceId>" + "</Extension>" + "</Map>"  
  103.                 + "<Map>" + "<Type>ccc</Type>" + "<SingleTile>ggg</SingleTile>"  
  104.                 + "<Extension>" + "<ResourceId>aaa</ResourceId>"  
  105.                 + "</Extension>" + "</Map>" + "<Extension />" + "</MapGroup>"  
  106.                 + "<ddd>" + "33333333" + "</ddd>" + "<ddd>" + "444" + "</ddd>"  
  107.                 + "</MapSet>"));  
  108.     }  
  109. }  

来自:http://blog.csdn.net/mqiqe/article/details/7554777

分享到:
评论

相关推荐

    java json xml转换

    描述:“java版的json与xml之间的转换的实例demo” JSON和XML各有优缺点。JSON以其简洁、易于阅读和生成而受到青睐,尤其适合在网络传输中使用;XML则因其强大的结构化能力,用于复杂的文档和数据存储。在Java环境...

    java json互转demo

    Java与JSON之间的转换是开发过程中常见的任务,尤其是在Web服务或者数据交换中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们可以...

    Json和XML解析demo

    在其他语言中,如Python或Java,需要使用库(如Python的json模块,Java的org.json库)进行解析和序列化。 4. **优缺点**: - 优点:简单、紧凑,传输速度快,更适合HTTP请求。 - 缺点:不支持注释,数据验证不如...

    http请求网络解析xml以及JSON的demo

    本教程将通过一个名为"HTTP请求网络解析XML以及JSON的demo"的实例,深入讲解如何利用Java实现这两种请求方式,并对返回的数据进行有效的解析。 首先,我们来看HTTP请求。在Java中,有两个主要的HTTP客户端API可供...

    java web接口开发demo

    在实际开发中,接口通常需要处理JSON或XML格式的数据,因为它们可以方便地在不同的系统间交换数据。`mServer`可能包含了解析和生成这些格式数据的代码,例如使用Jackson或Gson库。 安全性也是接口开发的重要方面。...

    JSON库使用DEMO

    Python的`json.loads()`可以将JSON字符串转为Python对象,而Java的`JSONObject`类提供了`get()`方法获取键对应的值,或者`fromJson()`方法将JSON字符串转化为指定类型的对象。 5. **操作JSON对象**: JSON库通常...

    json例子和demo

    通过学习这个JSON例子和demo,Java开发者可以更好地理解和应用JSON,这对于开发涉及数据交换的Java应用,尤其是与Web服务交互时,是非常关键的技能。同时,了解和掌握XML和JSON两者之间的差异和应用场景也非常重要,...

    android json与xml解析 例子 demo

    在Android开发中,数据交换和存储常常涉及到JSON和XML这两种数据格式。它们是网络通信中常用的轻量级数据表示方式,使得服务器与客户端之间能够高效地传输数据。本篇文章将详细探讨Android环境下如何进行JSON与XML的...

    WebService+Json DEMO

    在DEMO中,它可能被用来将Java对象转换为Json字符串,或者将接收到的Json字符串解析成Java对象。这个库提供了多种方法,如`JSONObject`、`JSONArray`,以及方便的JSON与Java Bean、Map等对象之间的转换功能。 文件`...

    Flex Demo XML JSON

    在"Flex Demo XML JSON"这个主题中,我们将探讨Flex如何处理XML和JSON数据,以及SSH(Secure Shell)在Flex应用中的可能用途。 XML(可扩展标记语言)和JSON(JavaScript Object Notation)是两种常见的数据交换...

    Json解析demo

    它们都提供了方便快捷的方式来序列化和反序列化Java对象为JSON字符串,以及将JSON字符串转换回Java对象。 1. **JackSon**:由FasterXML公司维护,是Java中非常流行的JSON处理库。它提供了一系列API,如`...

    《xStream完美转换XML、JSON》学习笔记

    xStream是一个强大的Java库,它能够轻松地将Java对象序列化为XML或反序列化为Java对象,同时也支持JSON格式。这篇学习笔记将深入探讨xStream的使用方法和特性,帮助你更好地理解和应用这个工具。 首先,xStream的...

    json和java互转demo(jackson)

    在本项目中,`jackson-test`可能是一个包含测试代码的模块,用于演示如何使用Jackson进行JSON和Java对象的互转。 1. **安装Jackson库** 在Java项目中使用Jackson,通常需要将以下Maven依赖添加到`pom.xml`文件中:...

    复杂的json解析demo

    通过创建与JSON结构匹配的Java类,我们可以轻松地将JSON数据转换为Java对象,或者将Java对象转换为JSON字符串。对于更复杂的情况,Gson还提供了`JsonElement`、`JsonObject`等工具,使得处理动态或不确定结构的JSON...

    Highcharts json demo

    在"Highcharts json demo"项目中,异步请求通常采用AJAX(Asynchronous JavaScript and XML)技术,虽然名称中包含XML,但实际应用中更多的是处理JSON数据。使用jQuery库中的$.ajax()或者$.getJSON()方法,我们可以...

    springMVC json格式转换demo

    本示例"springMVC json格式转换demo"将展示如何在Spring MVC应用中处理JSON格式的数据。 首先,确保你的项目依赖于`spring-web`模块,因为该模块包含了处理JSON所需的支持。在Maven的pom.xml文件中,添加以下依赖:...

    jquery ajax servlet json简单demo

    【Demo流程】在这个"jquery ajax servlet json简单demo"中,我们可以预期以下流程: 1. 客户端(浏览器)的JavaScript代码使用jQuery的AJAX函数发起请求,请求可能包含一些参数,格式化为JSON。 2. 请求被发送到...

    Java框架JSON-RPC项目demo代码实战

    - pom.xml:Maven项目的配置文件,包含了项目依赖,如JSON-RPC框架库。 - 测试类:用于验证服务端和客户端的正确性,通常会有一些测试用例。 在实际项目中,我们还需要关注以下几点: - 异常处理:服务端应处理可能...

    PB解析和生成JSON

    在某些场景下,它比XML或JSON更有效率。 描述中提到的“PB解析和生成JSON”,是指将PB编码的数据转换成JSON格式,以及检查JSON解析是否成功,以及如何生成默认的JSON数据。这涉及到两种不同的数据表示形式之间的...

    Struts2_JSON_Demo

    Struts2是一个流行的Java web应用程序框架,用于构建和维护可扩展、高效且易于管理的企业级应用。JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,它使得客户端和服务器之间的数据传输变得简单...

Global site tag (gtag.js) - Google Analytics