XML字符串转JSON字符串网上的方法很多,这里主要推荐两种:

1、使用org.json包

jar地址:http://mvnrepository.com/artifact/org.json/json

示例代码:

import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML; public class JsonUtils {
public static String xml2jsonString(String xml)throws JSONException{
JSONObject xmlJSONObj = XML.toJSONObject(xml);
return xmlJSONObj.toString();
}
}

2、使用org.jdom包

jar地址:http://www.jdom.org/

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>"));
}
}

参考:

1)http://blog.csdn.net/lovesummerforever/article/details/26396465

2)http://blog.csdn.net/duguwuyi/article/details/51500852

xml字符串转json字符串的更多相关文章

  1. 转换成json字符串,与json字符串转换成java类型都要先转换成json对象

    转换成json字符串,与json字符串转换成java类型都要先转换成json对象

  2. 使用python解析Json字符串-获取Json字符串关键字

    import json data = { "statusCode": 0, "data": { ", "height": &quo ...

  3. C#对象转JSON字符串和JSON字符串转对象

    namespace Net.String.ConsoleApplication { using System; using System.Data; using System.Collections; ...

  4. json对象转字符串与json字符串转对象

    1.概述: 我们在编程时进场会遇到json对象转字符串,或者字符串转对象的情况. 2.解决办法: json.parse()方法是将json字符串转成json对象. json.stringfy()方法是 ...

  5. jquery字符串数组转json字符串 C#json字符串转字符串list

    一.jquery字符串数组转json字符串 var str=['1','2','3']; var jsonText= JSON.stringify(str);//把一个对象转换成json字符串 str ...

  6. 对象转JSON字符串与json字符串转对象方法

    JSON.stringify()[从一个对象中解析出字符串] JSON.parse()[从一个json字符串中解析出对象] var data = {"nums": 1, " ...

  7. Python解析json字符串,json字符串用法

    json数据简介 json数据是一个轻量级的数据交换格式,采用完全独立于语言的文本格式,这些特性使json称为理想的数据交换语言,易于人阅读和编写,同时易于机器解析和生成. json中的字符集必须是U ...

  8. Java将其他数据格式转换成json字符串格式

    package com.wangbo.util; import java.beans.IntrospectionException; import java.beans.Introspector; i ...

  9. Newtonsoft.Json.dll反序列化JSON字符串的方法

      1.直接反序列化JSON字符串 //引用序列化.反序列化JSON字符串用到的空间 using Newtonsoft.Json; using Newtonsoft.Json.Linq; //定义一个 ...

随机推荐

  1. Eclipse中常用的快捷键总结!不收藏后悔!

    Eclipse中常用的快捷键总结!不收藏后悔!Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ ...

  2. maxima安装&使用

    环境: mint 19 或者 > ubuntu 18 源代码安装的好处, 可以使用最新版. mint 19.1 下面, 利用apt 直接安装的maxima版本太老,不支持 draw 函数. lo ...

  3. javaweb06 文件的下载

    1. 如何修改小工具或框架的源代码 ? 1). 原则: 能不修改就不修改. 2). 修改的方法: > 修改源代码, 替换 jar 包中对应的 class 文件. > 在本地新建相同的包, ...

  4. 用eclipse运行算法第四版的BinarySearch

    import java.util.Arrays; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdIn; impo ...

  5. 【MySQL参数】-innodb_additional_mem_pool_size

    原博客:https://yq.aliyun.com/articles/32384

  6. ubuntu18.04国内软件源

    ubuntu默认的软件源是国外的,下载软件很慢,需要更新为国内的源以提升速度,现在可以通过ubunt software来设置了,不过还是习惯了命令行修改的方式. 更新方法 123 sudo vi /e ...

  7. linux 中的.so和.a文件

    Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows下.dll文件. 下面是关于.so的介绍: 一.引言 通常情况下,对函数库的链接是放在编译时期(compile tim ...

  8. html title属性内容换行方法(静态页面)

    鼠标经过悬停于对象时提示内容(title属性内容)换行排版方法,html title 换行方法总结. html的title属性默认是显示一行的,这里介绍两种换行方法为大家分享使用. 一.直接title ...

  9. 2019-2020-1 20199324《Linux内核原理与分析》第九周作业

    第八章 进程的切换和系统的一般执行过程 1.进程调度的时机 硬中断和软中断 中断:在本质上都是软件或者硬件发生了某种情形而通知处理器的行为,处理器进而停止正在运行的指令流(当前进程),对这些通知做出相 ...

  10. maven仓库镜像、私服与jdk版本配置

    --配置全局镜像,setting.xml <mirrors> <mirror> <id>alimaven</id> <name>aliyun ...