json和xml互转

一:json和xml互转所需jar

  

  jar下载地址:

  链接: https://pan.baidu.com/s/1eR39lR0 密码: 8ue2

二:练习json和xml互转时要记得导入xom.jar

  注:如果不导入xom.jar会抛java.lang.NoClassDefFoundError: nu/xom/Serializer异常

  1 package com.tang;
  2 
  3 import java.io.BufferedReader;
  4 import java.io.File;
  5 import java.io.FileInputStream;
  6 import java.io.IOException;
  7 import java.io.InputStream;
  8 import java.io.InputStreamReader;
  9 
 10 import net.sf.json.JSON;
 11 import net.sf.json.JSONArray;
 12 import net.sf.json.JSONObject;
 13 import net.sf.json.JSONSerializer;
 14 import net.sf.json.xml.XMLSerializer;
 15 
 16 /**
 17  * json和xml互转
 18  * @author Administrator
 19  *
 20  */
 21 public class DemoJsonToXml {
 22     //文件读取地址   注:(这个是文件所在路劲,记得自己修改)
 23     public static String pathName = "d:/xx.xml";
 24     
 25     /**
 26      * 读取xml文件 
 27      * @return
 28      */
 29     public static String readXmlFile(){
 30         //创建一个文件对象
 31         File file = new File(pathName);
 32         
 33         BufferedReader reader = null;
 34         //输入流
 35         InputStream in = null;
 36         
 37         StringBuffer sb = new StringBuffer();
 38         try{
 39             in = new FileInputStream(file);
 40             
 41             //创建读取缓冲区
 42             reader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
 43             
 44             //存储读取的数据
 45             String inLine = null;
 46             //每次读取一行,当读取不到时跳出循环
 47             while((inLine=reader.readLine())!=null){
 48                 sb.append(inLine);
 49             }
 50 //            System.out.println(sb.toString());
 51         }catch(IOException e){
 52             e.printStackTrace();
 53         }finally{
 54             //关闭
 55             if(reader!=null){
 56                 try {
 57                     reader.close();
 58                     in.close();
 59                 } catch (IOException e) {
 60                     e.printStackTrace();
 61                 }
 62             }
 63         }
 64         return sb.toString();
 65     }
 66     /**
 67      * 注:如果不导入xom.jar会抛java.lang.NoClassDefFoundError: nu/xom/Serializer异常
 68      * 
 69      * XML字符串转换为json
 70      * @param xmlString
 71      *                 xml字符串
 72      * @return   json
 73      */
 74     public static String getXmlToJson(String xmlString){
 75         XMLSerializer xml = new XMLSerializer();
 76         JSON json = xml.read(xmlString);
 77 //        System.out.println(json);
 78         return json.toString(1);
 79     }
 80     
 81     /**
 82      * JSON(数组)字符串转换成XML字符串
 83      * 
 84      * @param jsonString
 85      * @return
 86      */
 87     public static String json2xml(String jsonString) {
 88         XMLSerializer xmlSerializer = new XMLSerializer();
 89 //        return xmlSerializer.write(JSONSerializer.toJSON(jsonString));
 90         JSONObject json = JSONObject.fromObject(jsonString);
 91         System.out.println(JSONArray.fromObject(json));
 92          return xmlSerializer.write(JSONArray.fromObject(json));//这种方式只支持JSON数组
 93     }
 94     
 95     public static void main(String[] args) {
 96         String xmlString = readXmlFile();
 97         String json = getXmlToJson(xmlString);
 98         String xml = json2xml(json);
 99         System.out.println(xml);
100     }
101 }

 

posted @ 2017-04-10 16:59  棒棒博客  阅读(810)  评论(0)    收藏  举报