要用到一个功能是把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,只要一个积分!
实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~
java的xml和json相互转换工具类,亲测直接用
此工具类使用dom4j对xml文件解析成json对象
XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用
java实现xml转json,包含全部源码以及eclipse安装包。
XML转换为JSON(支持多种方法):第二种方法,使用json-lib提供的方法
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 and (the more popular) JSON let you organize data in textual formats. This book introduces you to these technologies along with Java APIs for integrating them into your Java code. This book ...
主要介绍了java实现Xml与json之间的相互转换操作,结合实例形式分析了Java xml与json相互转换工具类的定义与使用相关操作技巧,需要的朋友可以参考下
xml转json,简单demo,工具类,java开发,XML、JSON、WEB开发应用
xml转json所需类库,并且附带教程说明,如果需要json库,请查看博主其他资源,里面有java使用json必须的几个jar包。
这是在android或者java中用xml传输数据时,用这个jar包一行代码即可把xml转成json,非常方便
commons-beanutils-1.8.0.jar、commons-collections-3.1.jar、commons-lang-2.4-1.jar、commons-logging-1.0.4.jar、dom4j-1.6.1-hudson-3.jar、ezmorph-1.0.6.jar、fastjson-1.1.39.jar、json-lib-2.2.1-jdk15.jar...
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
xml格式数据和json相互转换的源码,里面有详细的说明。拿来就可以直接使用的工具类。
xml 转 jsonObject java代码
共享xml与json相互转换jar包,帮助需要的人。
xml转json java源码 可正确运行,我写在一个java文件里了
This is your one-stop guide to mastering the XML metalanguage and JSON data format along with significant Java APIs for parsing and creating XML/JSON documents (and more). The first six chapters focus...