`

JAVA解析XML与JSON

    博客分类:
  • JAVA
 
阅读更多
自己备份代码

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class ReadFromXMLAndJSON {
	/**
	 * 获得xml字符串中指定节点的内容
	 * @param element 	输入:Element对象
	 * @param eleName 	输入:节点名称
	 * @param list 		输出:所有满足条件的节点内容
	 */
	@SuppressWarnings("unchecked")
	public void getURLFromXml(Element element, String eleName, List<String> list) {
		for (Iterator its = element.elementIterator(); its.hasNext();) {
			Element ele = (Element) its.next();
			if (ele.getName().equals(eleName)) {
				list.add(ele.getTextTrim());
			}
			if (ele.elements().size() > 0) {
				getURLFromXml(ele, eleName, list);
			}
		}
	}

	/**
	 * 获得json字符串中指定name对应的value值
	 * @param jb	输入:JSONObject对象
	 * @param name	输入:指定name值
	 * @param list 	输出:存放指定name对应的所有value
	 */
	@SuppressWarnings("unchecked")
	public void getURLFromJson(JSONObject jb, String name, List<String> list) {
		Iterator iter = jb.keySet().iterator();
		while (iter.hasNext()) {
			String key = iter.next().toString();
			System.out.println("key=" + key + ", val=" + jb.get(key));
			if (key.trim().equals(name)) {
				list.add(jb.get(key).toString());
			}
			if (jb.get(key).toString().indexOf("{") >= 0) { // 递归调用判断条件
				JSONObject jbInner;
				if (jb.get(key).getClass().equals(JSONArray.class)) {
					for (int i = 0; i < jb.getJSONArray(key).size(); i++) {
						jbInner = JSONObject.fromObject(jb.getJSONArray(key).get(i));
						getURLFromJson(jbInner, name, list);
					}
				} else {
					jbInner = JSONObject.fromObject(jb.get(key));
					getURLFromJson(jbInner, name, list);
				}
			}
		}
	}

	@SuppressWarnings("unchecked")
	public void test(String formatStr) {
		String messageXMLStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><request_message><message>"
								+ " <title>面 包</title><title>2.20</title>"
								+ "<valid_datetime>2012-05-20 20:30:00</valid_datetime"
								+ "</message></request_message>";
		String messageJSONStr = "{ 'programmers': [{ 'firstName': 'Elliotte', 'lastName':'Harold','email': 'elharo@macfaq.com' },{ 'firstName3333': 'Isaac3333'}], "
								+ "'authors': [{ 'firstName': 'Isaac', 'lastName': 'Asimov', 'genre': 'science fiction' }]}";

		// 解析XML文件
		List<String> list = new ArrayList<String>();
		if (formatStr.equals("xml")) {
			try {
				Document document = DocumentHelper.parseText(messageXMLStr);
				Element root = document.getRootElement();
				getURLFromXml(root, "title", list);
			} catch (DocumentException e) {
				e.printStackTrace();
			}
		} else if (formatStr.equals("json")) {
			JSONObject jb = JSONObject.fromObject(messageJSONStr);
			getURLFromJson(jb, "firstName", list);
		}
		for (Iterator ite = list.iterator(); ite.hasNext();) {
			System.out.println(ite.next());
		}
	}

	public static void main(String[] args) {
		CallBackServlet cbs = new CallBackServlet();
		cbs.test("xml");
		cbs.test("json");
	}
}

分享到:
评论

相关推荐

    java解析xml生成json对象

    在Java编程环境中,XML(可...总的来说,Java解析XML生成JSON对象的能力使得数据在不同平台和应用间无缝交换成为可能。通过学习和使用这样的工具类,开发者可以更高效地处理XML数据,并将其集成到基于JSON的系统中。

    java实现Xml与json之间的相互转换操作示例

    1. Xml与json的定义与区别:Xml是一种标记语言,用来描述和存储数据,具有自我描述性,而json是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成,因此在Web开发中得到广泛的应用。...

    java的xml和json相互转换工具类,亲测直接用

    在Java开发中,XML(可扩展标记语言)和JSON...在`XmlToJson.java`这个工具类中,我们展示了如何利用Jackson库进行XML与JSON之间的转换。这只是一个基础示例,实际项目中可能需要进行更复杂的错误处理和数据验证。

    java解析xml的4种方法和json格式

    本篇文章将详细介绍Java解析XML的四种方法以及JSON格式的相关知识。 一、DOM解析 DOM(Document Object Model)是W3C推荐的一种解析XML的标准方法,它将整个XML文档加载到内存中,形成一个树形结构,便于遍历和操作...

    java的xml和json相互转换工具类,直接用

    实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~

    java实现xmlToJson

    这个方法中,`XmlMapper`用于解析XML,`ObjectNode`是Jackson中的一个抽象节点,用于表示JSON对象。然后,我们使用`jsonMapper.writeValueAsString()`将`ObjectNode`转换为JSON字符串。 3. **使用示例**:你可以...

    Java 解析xml 存入mongodb 返回org.json json包

    本篇将详细介绍如何使用Java解析XML,将数据存入MongoDB,并返回org.json JSON包。 首先,解析XML通常有两种主要方法:DOM(Document Object Model)和SAX(Simple API for XML)。DOM一次性加载整个XML文档到内存...

    Java XML转JSON

    Jackson提供了`XmlMapper`类来进行XML与JSON之间的转换。以下是如何将XML字符串转换为JSON对象的示例代码: ```java import com.fasterxml.jackson.databind.ObjectMapper; import ...

    java解析三级json

    java解析json,xml 思路基本上是一致的,细心点就行,一层一层的解,要有耐心。该段代码最初是在HBuild上写的看效果需要放在类似于Tomcat或者Resign的服务器上发布。WebStream,Eclipse,MyEclipse上应该也能用。...

    java解析json完整案例

    Java解析JSON是一个常见的任务,特别是在开发Web服务或者与API交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,我们可以使用多种库...

    xml转json包与教程

    5. **安全与最佳实践**:在处理XML到JSON的转换时,应注意防止XXE(XML External Entity)攻击,这是一种利用XML解析器漏洞获取服务器敏感信息的攻击方式。确保使用安全配置的XML解析器,并避免解析不受信任的XML...

    xml完美解析成json 亲测可用

    一直苦恼xml转json,很多工具类支持,但是转换的效果都很差,一个偶然的时间,我找到这个资源,分享给大家,解析效果相当不错。 使用方法: //将xml转为json JSONObject xmlJSONObj = XML.toJSONObject(ret);

    java中解析json字符串

    除了解析JSON字符串到Java对象,这两个库还支持将Java对象转换为JSON字符串,以及解析JSON到Map或List等数据结构。 3. **其他库** 除了Jackson和Gson,还有其他的JSON处理库,如org.json(提供简单的JSON工具类)...

    xml解析和json解析.zip

    此外,它还支持JSON Schema验证,以及直接映射Java反射机制,使得JSON与Java对象之间的转换变得极其便捷。 4. **JSON解析**: JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON...

    xml/Json转换工具类

    本篇将详细介绍如何使用Java工具类进行XML与JSON的转换,并介绍相关知识。 首先,`pom依赖.txt`文件中应包含的是Maven项目的依赖信息。在Java项目中,我们需要引入处理XML和JSON转换的库。通常,我们使用如Jackson...

    xml & json 转换工具

    - 解析XML文档,将其转换为DOM(Document Object Model)树。 - 使用如XStream这样的库,将DOM树转换为Java对象模型。 - 使用Json-lib,将Java对象转换为JSON字符串。 反之,JSON到XML的转换则反向进行: - JSON...

    java解析xml动态生成树形菜单结构

    总结起来,实现“java解析xml动态生成树形菜单结构”的项目,需要掌握以下核心知识点: 1. Java的DOM解析XML,构建树形数据结构。 2. 设计和实现无限层级的树形菜单数据模型。 3. 使用`JSTree`库在前端渲染树形菜单...

    java解析json数据

    Java中解析JSON数据主要依赖于一些库,如org.json库(包含JSONObject和JSONArray类)。 在Java中,解析JSON数据的步骤通常分为以下几个部分: 1. **导入相关库**:首先,你需要在项目中引入JSON库。如果是使用...

    Java-Java操作XML和JSON教程

    在Java中,我们可以使用DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等库来解析和生成XML文档。 1. **DOM解析器**:DOM解析器将整个XML文档加载到内存中的一个树形...

    03-Java核心类库_XML与JSON(配套工具)

    03-Java核心类库_XML与JSON(配套工具)。包含fastjson-1.2.70.jar、gson-2.8.6.jar、dom4j-1.6.1.jar、jaxen-1.1-beta-7.jar、xstream-1.3.1.jar。

Global site tag (gtag.js) - Google Analytics