- 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>"));
- }
- }
来自:http://blog.csdn.net/mqiqe/article/details/7554777
相关推荐
描述:“java版的json与xml之间的转换的实例demo” JSON和XML各有优缺点。JSON以其简洁、易于阅读和生成而受到青睐,尤其适合在网络传输中使用;XML则因其强大的结构化能力,用于复杂的文档和数据存储。在Java环境...
Java与JSON之间的转换是开发过程中常见的任务,尤其是在Web服务或者数据交换中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们可以...
在其他语言中,如Python或Java,需要使用库(如Python的json模块,Java的org.json库)进行解析和序列化。 4. **优缺点**: - 优点:简单、紧凑,传输速度快,更适合HTTP请求。 - 缺点:不支持注释,数据验证不如...
本教程将通过一个名为"HTTP请求网络解析XML以及JSON的demo"的实例,深入讲解如何利用Java实现这两种请求方式,并对返回的数据进行有效的解析。 首先,我们来看HTTP请求。在Java中,有两个主要的HTTP客户端API可供...
在实际开发中,接口通常需要处理JSON或XML格式的数据,因为它们可以方便地在不同的系统间交换数据。`mServer`可能包含了解析和生成这些格式数据的代码,例如使用Jackson或Gson库。 安全性也是接口开发的重要方面。...
Python的`json.loads()`可以将JSON字符串转为Python对象,而Java的`JSONObject`类提供了`get()`方法获取键对应的值,或者`fromJson()`方法将JSON字符串转化为指定类型的对象。 5. **操作JSON对象**: JSON库通常...
通过学习这个JSON例子和demo,Java开发者可以更好地理解和应用JSON,这对于开发涉及数据交换的Java应用,尤其是与Web服务交互时,是非常关键的技能。同时,了解和掌握XML和JSON两者之间的差异和应用场景也非常重要,...
在Android开发中,数据交换和存储常常涉及到JSON和XML这两种数据格式。它们是网络通信中常用的轻量级数据表示方式,使得服务器与客户端之间能够高效地传输数据。本篇文章将详细探讨Android环境下如何进行JSON与XML的...
在DEMO中,它可能被用来将Java对象转换为Json字符串,或者将接收到的Json字符串解析成Java对象。这个库提供了多种方法,如`JSONObject`、`JSONArray`,以及方便的JSON与Java Bean、Map等对象之间的转换功能。 文件`...
在"Flex Demo XML JSON"这个主题中,我们将探讨Flex如何处理XML和JSON数据,以及SSH(Secure Shell)在Flex应用中的可能用途。 XML(可扩展标记语言)和JSON(JavaScript Object Notation)是两种常见的数据交换...
它们都提供了方便快捷的方式来序列化和反序列化Java对象为JSON字符串,以及将JSON字符串转换回Java对象。 1. **JackSon**:由FasterXML公司维护,是Java中非常流行的JSON处理库。它提供了一系列API,如`...
xStream是一个强大的Java库,它能够轻松地将Java对象序列化为XML或反序列化为Java对象,同时也支持JSON格式。这篇学习笔记将深入探讨xStream的使用方法和特性,帮助你更好地理解和应用这个工具。 首先,xStream的...
在本项目中,`jackson-test`可能是一个包含测试代码的模块,用于演示如何使用Jackson进行JSON和Java对象的互转。 1. **安装Jackson库** 在Java项目中使用Jackson,通常需要将以下Maven依赖添加到`pom.xml`文件中:...
通过创建与JSON结构匹配的Java类,我们可以轻松地将JSON数据转换为Java对象,或者将Java对象转换为JSON字符串。对于更复杂的情况,Gson还提供了`JsonElement`、`JsonObject`等工具,使得处理动态或不确定结构的JSON...
在"Highcharts json demo"项目中,异步请求通常采用AJAX(Asynchronous JavaScript and XML)技术,虽然名称中包含XML,但实际应用中更多的是处理JSON数据。使用jQuery库中的$.ajax()或者$.getJSON()方法,我们可以...
本示例"springMVC json格式转换demo"将展示如何在Spring MVC应用中处理JSON格式的数据。 首先,确保你的项目依赖于`spring-web`模块,因为该模块包含了处理JSON所需的支持。在Maven的pom.xml文件中,添加以下依赖:...
【Demo流程】在这个"jquery ajax servlet json简单demo"中,我们可以预期以下流程: 1. 客户端(浏览器)的JavaScript代码使用jQuery的AJAX函数发起请求,请求可能包含一些参数,格式化为JSON。 2. 请求被发送到...
- pom.xml:Maven项目的配置文件,包含了项目依赖,如JSON-RPC框架库。 - 测试类:用于验证服务端和客户端的正确性,通常会有一些测试用例。 在实际项目中,我们还需要关注以下几点: - 异常处理:服务端应处理可能...
在某些场景下,它比XML或JSON更有效率。 描述中提到的“PB解析和生成JSON”,是指将PB编码的数据转换成JSON格式,以及检查JSON解析是否成功,以及如何生成默认的JSON数据。这涉及到两种不同的数据表示形式之间的...
Struts2是一个流行的Java web应用程序框架,用于构建和维护可扩展、高效且易于管理的企业级应用。JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,它使得客户端和服务器之间的数据传输变得简单...