要用到一个功能是把xml格式文件转成json格式的.网上找了很多都不太慢意就自已写了一个
不多说,贴原码:
public class Utilities {
/**
* 转换一个xml格式的字符串到json格式
* @param xml xml格式的字符串
* @return 成功返回json 格式的字符串;失败反回null
*/
@SuppressWarnings("unchecked")
public 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 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")
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(new Utilities().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://hi.baidu.com/930116173/item/a233db0f40f326f0f45ba6dd
分享到:
相关推荐
Java社区中有多个库提供了XML到JSON的转换功能,例如Jackson、Gson、org.json等。这里我们以Jackson库为例,因为它既支持XML到JSON的转换,也支持JSON到XML的转换,并且API设计友好,使用起来非常方便。 1. 引入...
在Java开发中,XML(可扩展标记语言)和JSON(JavaScript Object Notation)是两种常见的数据交换格式。它们各自有着不同的特性和应用场景,但有时我们需要将XML数据转换为JSON,或者将JSON数据转换为XML,以满足...
实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~
此工具类使用dom4j对xml文件解析成json对象
在Java中,`json-lib`是一个非常流行的JSON库,它提供了将XML转换为JSON的功能。以下是如何使用json-lib实现这一转换的步骤: 1. 引入依赖:在项目中引入json-lib的JAR包,通常可以通过Maven或Gradle添加依赖。 2....
XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用
java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和...
例如,Jackson库提供了`com.fasterxml.jackson.dataformat:jackson-dataformat-xml`和`com.fasterxml.jackson.core:jackson-databind`两个模块,用于XML与JSON的互转。将这些依赖添加到你的`pom.xml`文件中,可以...
2. java实现Xml与json相互转换的必要性:在Web开发中,我们经常需要在前后端之间进行数据的交换,由于后端和前端使用的数据格式可能不同,这时候就需要实现数据格式的转换,尤其是在使用Java作为后端开发语言时,...
这个压缩包“xml转json包与教程”提供了相关的类库和教程,帮助开发者完成这一任务。下面将详细介绍这个过程中的关键知识点: 1. **XML解析器**:在Java中,处理XML数据通常使用DOM(Document Object Model)、SAX...
首先,Java中没有内置的库直接支持XML到JSON的转换,但有许多第三方库可以帮助我们完成这个任务,如Jackson、Gson和org.json等。这里我们将以Jackson库为例,因为它是Java中最流行的JSON处理库之一,它提供了XML到...
首先,你可以使用`javax.xml.bind`包中的`javax.xml.bind.annotation.XmlRootElement`和`javax.xml.bind.JAXBContext`将XML转换为Java对象,然后再使用Gson将Java对象转换为JSON。 4. **Apache CXF库**:Apache CXF...
标题提到的"java或android xml转json所需jar包"就是为了解决这种需求。 在描述中提到的jar包,通常是指一个包含预编译Java类的归档文件,可以便捷地引入到项目中作为第三方库使用。这种jar包很可能包含了一个或者多...
java工程源码实现xml和json的互转,工程已包含所jar包:commons-beanutils-1.7.0.jar、commons-collections-3.1.jar、commons-lang-2.5.jar、commons-logging.jar、ezmorph-1.0.3.jar、json-lib-2.4-jdk15.jar、xom-...
XML(eXtensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛用于数据交换的格式。XML是一种结构化标记语言,适用于描述复杂的数据结构,而JSON则更简洁,通常用于轻量级的Web服务和浏览器...
Android SDK本身并不直接提供XML到JSON的转换功能,但可以利用Java的标准库如`javax.xml.parsers.DocumentBuilderFactory`解析XML,然后使用`org.json`库(Android SDK自带)将解析后的数据转换为JSON。以下是基本...
描述中提到的jar包可能包含如JAXB(Java Architecture for XML Binding)、Jackson、Gson或org.json等库的功能,这些库允许开发者在Java中方便地进行XML与JSON的转换。 1. JAXB:Java标准API,用于在Java对象和XML...
Java实现XML到JSON转换涉及到的是数据格式之间的互换,这对于数据交换、API接口设计和Web服务来说非常常见。XML(可扩展标记语言)是一种结构化数据格式,常用于存储和传输数据;而JSON(JavaScript Object Notation...
XML(Extensible Markup Language)和JSON(JavaScript ...这个过程涉及到XML和JSON的互转、文件I/O以及压缩文件的处理,这些都是Java开发中常见的技能。理解并熟练掌握这些将有助于你处理各种数据交换和文件处理任务。