`
shenhaiyue
  • 浏览: 25838 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA 实现XML与JSON 相互转换

    博客分类:
  • java
 
阅读更多

1.把XML转为JSON格式

     

        

[java] view plain copy
 
  1. @SuppressWarnings("rawtypes")  
  2.     public static  String xmlToJSON(String xml,int jsonType) {  
  3.         JSONObject obj = new JSONObject();  
  4.         try {  
  5.             InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));  
  6.             SAXBuilder sb = new SAXBuilder();  
  7.             Document doc = sb.build(is);  
  8.             Element root = doc.getRootElement();  
  9.             Map map=iterateElement(root);  
  10.            obj.put(root.getName(),map);  
  11.            return obj.toString();  
  12.         } catch (Exception e) {  
  13.             e.printStackTrace();  
  14.             return null;  
  15.         }  
  16.     }  
  17.   
  18.   
  19. @SuppressWarnings({ "unchecked""rawtypes" })  
  20.     private static Map  iterateElement(Element root) {  
  21.         List childrenList = root.getChildren();  
  22.         Element element = null;  
  23.         Map map = new HashMap();  
  24.         List list = null;  
  25.         for (int i = 0; i < childrenList.size(); i++) {  
  26.             list = new ArrayList();  
  27.             element = (Element) childrenList.get(i);  
  28.             if(element.getChildren().size()>0){  
  29.                 if(root.getChildren(element.getName()).size()>1){  
  30.                     if (map.containsKey(element.getName())) {  
  31.                         list = (List) map.get(element.getName());  
  32.                     }  
  33.                     list.add(iterateElement(element));  
  34.                     map.put(element.getName(), list);  
  35.                 }else{  
  36.                     map.put(element.getName(), iterateElement(element));  
  37.                 }  
  38.             }else {  
  39.                 if(root.getChildren(element.getName()).size()>1){  
  40.                     if (map.containsKey(element.getName())) {  
  41.                         list = (List) map.get(element.getName());  
  42.                     }  
  43.                     list.add(element.getTextTrim());  
  44.                     map.put(element.getName(), list);  
  45.                 }else{  
  46.                     map.put(element.getName(), element.getTextTrim());  
  47.                 }  
  48.             }  
  49.         }  
  50.           
  51.         return map;  
  52.     }  
  53.       
  54.   
  55.   
  56.     public static void main(String[] args) throws ParseException  
  57.     {         
  58.         String xml="<ROOT>"+  
  59.         "<Status>00</Status>"+  
  60.         "<ErrorMsg></ErrorMsg>"+  
  61.         "<Data>"+  
  62.            "<Row>"+  
  63.               "<PERSONID>35020500200610000000000701355116</PERSONID>"+  
  64.               "<XM>吴聪楠</XM><SFZH>350624198908052530</SFZH>"+  
  65.            "</Row>"+  
  66.            "<Row>"+  
  67.               "<PERSONID>35020500200610000000000701355117</PERSONID>"+  
  68.               "<XM>吴聪楠2</XM><SFZH>350624198908052531</SFZH>"+  
  69.               "</Row>"+  
  70.           "</Data>"+  
  71.     "</ROOT>";  
  72.   
  73.           
  74.         String str=Xml2JsonUtil.xmlToJSON(xml,1);  
  75.       System.out.println(str);  
  76. }

原来的格式:

 

    <ROOT><Status>00</Status><ErrorMsg></ErrorMsg><Data><Row><PERSONID>35020500200610000000000701355116</PERSONID><XM>吴聪楠</XM><SFZH>350624198908052530</SFZH></Row><Row><PERSONID>35020500200610000000000701355117</PERSONID><XM>吴聪楠2</XM><SFZH>350624198908052530</SFZH></Row></Data></ROOT>

转换完的格式:

   <span style="font-size:18px;">{"ROOT":{"Data":{"Row":[{"SFZH":"350624198908052530","XM":"吴聪楠","PERSONID":"35020500200610000000000701355116"},{"SFZH":"350624198908052530","XM":"吴聪楠2","PERSONID":"35020500200610000000000701355117"}]},"Status":"00","ErrorMsg":""}}</span>

 

  2.JSON 转换为XML格式

    

[java] view plain copy
 
  1. public static  String JsonToXml(Object json)   
  2.     {  
  3.         if(json==null){  
  4.             return null;  
  5.         }else{  
  6.          Element elements=new Element("xml");  
  7.          getXMLFromObject(json,"xml",elements);  
  8.          XMLOutputter xmlOut = new XMLOutputter();    
  9.          String res=xmlOut.outputString(elements);  
  10.          return res;  
  11.        }  
  12.     }  
  13.   
  14.   
  15. private static void getXMLFromObject(Object obj,String tag,Element parent)  
  16.     {  
  17.         if(obj==null)  
  18.             return;  
  19.         Element child;  
  20.         String eleStr;  
  21.         Object childValue;  
  22.         if(obj instanceof JSONObject)  
  23.         {  
  24.             JSONObject jsonObject=(JSONObject)obj;  
  25.             for(Object temp:jsonObject.keySet())  
  26.             {  
  27.                 eleStr=temp.toString();  
  28.                 childValue=jsonObject.get(temp);  
  29.                 child=new Element(eleStr);  
  30.                 if(childValue instanceof JSONArray)  
  31.                     getXMLFromObject(childValue,eleStr,parent,count);  
  32.                 else{  
  33.                     parent.addContent(child);  
  34.                     getXMLFromObject(childValue,eleStr,child,count);  
  35.                 }  
  36.             }  
  37.         }else if(obj instanceof JSONArray){  
  38.             JSONArray jsonArray=(JSONArray)obj;  
  39.             for(int i=0;i<jsonArray.size();i++)  
  40.             {  
  41.                 childValue=jsonArray.get(i);  
  42.                 child=new Element(tag);  
  43.                 parent.addContent(child);  
  44.                 getXMLFromObject(childValue,tag,child,count);  
  45.             }  
  46.         }else if(obj instanceof Date){  
  47.             SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  48.             parent.setText(sf.format((Date)obj));  
  49.         }else{  
  50.             parent.setText(obj.toString());  
  51.         }  
  52.     }  
  53.           
  54.   
  55. public static void main(String[] args) throws ParseException  
  56.     {  
  57.   JSONObject rootObject=new JSONObject();  
  58.        
  59.       JSONArray dataArray=new JSONArray();  
  60.       JSONObject dataObject1=new JSONObject();  
  61.       dataObject1.put("PERSONID""35020500200610000000000701355117");  
  62.       dataObject1.put("XM""吴聪楠");  
  63.       dataObject1.put("SFZH","350624198908052530");  
  64.       dataArray.add(dataObject1);  
  65.       JSONObject dataObject2=new JSONObject();  
  66.       dataObject2.put("PERSONID""35020500200610000000000701355116");  
  67.       dataObject2.put("XM""吴聪楠2");  
  68.       dataObject2.put("SFZH","350624198908052531");  
  69.       dataArray.add(dataObject2);  
  70.       
  71.       JSONObject dataRootObject=new JSONObject();  
  72.       dataRootObject.put("Row", dataArray);  
  73.       JSONObject dataObject=new JSONObject();  
  74.       dataObject.put("Status""00");  
  75.       dataObject.put("ErrorMsg""");  
  76.       dataObject.put("Data",dataRootObject);  
  77.       rootObject.put("ROOT", dataObject);  
  78.         
  79.       System.out.println(rootObject.toString());  
  80.       System.out.println(JsonToXml(rootObject));          
  81.           
  82.     }</span>  

  原来的格式:

 

     

{"ROOT":{"Status":"00","ErrorMsg":"","Data":{"Row":[{"PERSONID":"35020500200610000000000701355117","XM":"吴聪楠","SFZH":"350624198908052530"},{"PERSONID":"35020500200610000000000701355116","XM":"吴聪楠2","SFZH":"350624198908052531"}]}}}

 

转换完的格式:

   

<ROOT><Status>00</Status><ErrorMsg></ErrorMsg><Data><Row><PERSONID>35020500200610000000000701355117</PERSONID><XM>吴聪楠</XM><SFZH>350624198908052530</SFZH></Row><Row><PERSONID>35020500200610000000000701355116</PERSONID><XM>吴聪楠2</XM><SFZH>350624198908052531</SFZH></Row></Data></ROOT>

分享到:
评论

相关推荐

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

    java实现Xml与json相互转换的必要性:在Web开发中,我们经常需要在前后端之间进行数据的交换,由于后端和前端使用的数据格式可能不同,这时候就需要实现数据格式的转换,尤其是在使用Java作为后端开发语言时,如何将...

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

    本篇文章将详细介绍Java中如何实现XML和JSON的相互转换,并提供一个名为`XmlToJson.java`的工具类作为参考。 首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析...

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

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

    java实现xmlToJson

    Java实现XML到JSON转换涉及到的是数据格式之间的互换,这对于数据交换、API接口设计和Web服务来说非常常见。XML(可扩展标记语言)是一种结构化数据格式,常用于存储和传输数据;而JSON(JavaScript Object Notation...

    java XML 和json 转换工具类

    java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和...

    java实现xml转json

    2. **XML到JSON转换**:有了Jackson库,你可以创建一个简单的Java类来实现XML到JSON的转换。以下是一个示例: ```java import com.fasterxml.jackson.databind.ObjectMapper; import ...

    java xml json 相互转换

    本篇将详细介绍Java环境下XML和JSON的相互转换,并针对提供的jar包进行解析。 XML是一种结构化数据格式,它以标签(tag)的形式描述数据,易于人类阅读,同时也便于机器解析。XML支持自定义标签,可以表达复杂的...

    Java XML转JSON

    - XML到JSON转换时,XML的属性会转换为JSON对象的键值对,而元素会转换为JSON数组或对象。 - JSON不支持命名空间,因此XML中的命名空间在转换时会被忽略或特殊处理。 - 转换过程中可能遇到的数据类型不匹配问题,...

    XML、JAVA、JSON多种方式互相转换

    在"JsonDemo"这个示例中,可能包含了使用Java进行XML、JSON转换的代码实例,可能涵盖了上述提到的一些方法。通过阅读和学习这些代码,开发者可以更好地理解并掌握这些转换技巧,从而在实际项目中更加高效地处理数据...

    java或android xml转json所需jar包

    这种jar包很可能包含了一个或者多个类,这些类提供了XML到JSON转换的功能。只需要一行代码,开发者就能实现XML数据的快速转换,大大提高了开发效率。 为了实现XML到JSON的转换,我们可以使用如下的库: 1. **org....

    java解析xml生成json对象

    将XML转换为JSON对象是一个常见的需求,特别是在需要将XML数据与JavaScript或JSON支持的其他语言进行交互时。 本项目提供的"解析xml---xml文件转json对象"是一个Java工具类,用于将XML文件解析成JSON对象,便于处理...

    xml & json 转换工具

    在XML到JSON转换过程中,XStream可能首先用于将XML数据转换为Java对象,然后这些对象再由Json-lib处理成JSON格式。 XML到JSON的转换通常包括以下步骤: - 解析XML文档,将其转换为DOM(Document Object Model)树。...

    java json xml转换

    总之,Java提供了多种方式实现JSON和XML的相互转换,开发者可以根据项目需求选择合适的库和方法。理解这些转换过程对于提升开发效率和保证数据交换的准确性至关重要。在实际项目中,务必根据具体场景选择最适合的...

    xml/Json转换工具类

    以上就是使用Java和Jackson库进行XML与JSON转换的基本知识。注意,实际应用中可能需要处理更复杂的XML结构,包括处理命名空间、属性等,这可能需要对`XmlMapper`的配置进行调整。同时,确保正确处理可能出现的异常,...

    java转换xml、list、map和json

    "java转换xml、list、map和json" ...本文主要讲述了Java中将xml、list、map和json之间的转换的相关知识点,包括xml和map之间的转换、xml和list之间的转换、xml和json之间的转换、map和json之间的转换等。

    xml转json包与教程

    通过这个压缩包提供的资源,开发者可以学习到XML与JSON转换的基本方法,并能根据“使用方法.txt”的教程快速上手。在实际开发中,结合具体项目需求,灵活应用这些知识,可以提高工作效率并优化数据处理流程。

    xml 与json转换代码

    同样,XStream也可以用于将JSON转换为XML。首先,你需要将JSON字符串转换为Java对象,然后使用XStream将对象转换为XML: ```java String jsonString = "{\"student\":{\"name\":\"John\",\"age\":25}}"; Student ...

    XML转换为JSON(支持多种方法)

    在Java中,`json-lib`是一个非常流行的JSON库,它提供了将XML转换为JSON的功能。以下是如何使用json-lib实现这一转换的步骤: 1. 引入依赖:在项目中引入json-lib的JAR包,通常可以通过Maven或Gradle添加依赖。 2....

    xml与json、javabean的互相转换

    同样,使用Jackson库,我们可以使用`JsonNode`对象的`toPrettyString()`方法将JSON转换为XML: ```java import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; ...

    xml转json所需要的jar包

    1. **Jackson库**:Jackson是一个非常流行的Java JSON处理库,它提供了将JSON与Java对象互相转换的功能。对于XML到JSON的转换,Jackson提供了`jackson-dataformat-xml`模块。你需要添加以下依赖到你的`pom.xml`...

Global site tag (gtag.js) - Google Analytics