自己备份代码
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对象,方便操作,下载后导入eclipse,加入相关的jar包后加载至类路径便可测试该工具类,很好用!!!
实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~
java解析xml的4种方法和json格式,直接复制到main方法里运行就可以了,注释都有。
Java 解析xml 存入mongodb 返回org.json json包
java解析json,xml 思路基本上是一致的,细心点就行,一层一层的解,要有耐心。该段代码最初是在HBuild上写的看效果需要放在类似于Tomcat或者Resign的服务器上发布。WebStream,Eclipse,MyEclipse上应该也能用。...
一直苦恼xml转json,很多工具类支持,但是转换的效果都很差,一个偶然的时间,我找到这个资源,分享给大家,解析效果相当不错。 使用方法: //将xml转为json JSONObject xmlJSONObj = XML.toJSONObject(ret);
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。
此工具类使用dom4j对xml文件解析成json对象
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
java&android;解析xml 将xml转换为json java&android;解析xml 将xml转换为json 原文地址:https://blog.csdn.net/u010838785/article/details/82258411
XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用
dom4j和fastjson jar包,用于xml文件的解析和json文件的解析
JSONUtils 实现了json结构数据的生成与解析,json与 xml之间相互转换
java转换xml、list、map和json
仅依赖jdk把xml解析为json,支持多层xml转为json字符串
请参看文档:http://blog.csdn.net/sinat_29398599/article/details/52862855
Java下的json构造和解析工具包:org.json.jar,轻量级,且它还包含JSON与XML, HTTP headers, Cookies, CDL的转换。
JSON解析xml的jar包,经过测试,可用。
支持excel2003,2007的解析读取,可指定sheet页读取,指定行开始读取,过滤空行,指定列读取,过滤空单元格,支持json文件的解析读取,支持word文件的解析读取,txt文件等等,需要API文档可私信本人
在公司项目中都是以xml或json格式的数据作为参数进行传递的,方便使用,用java程序开发出相应的具体操作,对json和xml格式数据的解析。含有完整的java代码和相关的jar包