JSON转换成XML、XML转换成JSON

来源:互联网 发布:今年淘宝双11销售额 编辑:程序博客网 时间:2024/06/06 03:10

这几天需要JSON与XML之间转换的工具类,网上搜了好多都不是自己需要的,于是自己编写了一个。

所需jar包地址:http://download.csdn.net/detail/yuxiangaaaaa/9613995

一、JSON转XML

(1)JSONbean 转换成XML

public class People {People(int id,String name){this.id = id;this.name = name;}private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
JSONbean方法:

/**    * JsonObject转换成xml    *     * @param json    * @return    */public static String JsonBean2XmlString(JSONObject json){System.out.println("JsonBean转换成xml:");System.out.println("json:"+json);StringBuffer sb = new StringBuffer("<xml><p>");    for(Object key : json.keySet()){    sb.append("<").append(key).append(">");    Object value = json.get(key);    //判断value是否含有JSONArray    JSONObject jsonV = ((JSONObject)value);    for(Object key2 : jsonV.keySet()){    sb.append("<").append(key2).append(">");    Object value2 = jsonV.get(key2);    sb.append(value2);    sb.append("</").append(key2).append(">");    }    sb.append("</").append(key).append(">");    }    sb.append("</p></xml>");    return sb.toString();    }

main测试:

JSONObject json = new JSONObject();        People p = new People(9203,"xiaobao");        People p2 = new People(943,"xiaoxiao");        json.put("p1", p);        json.put("p2", p2);System.out.println(JsonBean2XmlString(json));
测试输出结果:
JsonBean转换成xml:json:{"p1":{"id":9203,"name":"xiaobao"},"p2":{"id":943,"name":"xiaoxiao"}}<xml><p><p1><id>9203</id><name>xiaobao</name></p1><p2><id>943</id><name>xiaoxiao</name></p2></p></xml>

(2)多层嵌套的JSON转换

如:{"p":{"p1":{"p2":{"id":2222,"name":"xiao2"}},"name":"xiao3"},"id2":"iii","name2":"ffff"}


 /**     * Json多层数据结构转换成xml     * @param json     * @return     */ public static String Json2XmlString(String jsonStr){ System.out.println("json转换成xmlString:"); JSONObject json = JSONObject.fromObject(jsonStr); StringBuffer sb = new StringBuffer("<xml>");     for(Object key : json.keySet()){     sb.append("<").append(key).append(">");          Object value = json.get(key);     sb.append(iteraorJson(value));     sb.append("</").append(key).append(">");     }     sb.append("</xml>");     return sb.toString();     } /**  * 迭代判断value是否还包含jSONObject  * @param value  * @return  */ public static String iteraorJson(Object value){ StringBuffer sb = new StringBuffer(""); if((value.toString().contains(":"))){ JSONObject json = ((JSONObject)value); for(Object key : json.keySet()){    sb.append("<").append(key).append(">");    Object value2 = json.get(key);    sb.append(iteraorJson(value2));    sb.append("</").append(key).append(">");    }  }else{ sb.append(value); }  return sb.toString(); }

测试:

String jsonStr = "{\"p\":{\"p1\":{\"p2\":{\"id\":2222,\"name\":\"xiao2\"}},\"name\":\"xiao3\"},\"id2\":\"iii\",\"name2\":\"ffff\"}";System.out.println("jsonStr:"+jsonStr);System.out.println(Json2XmlString(jsonStr));
结果输出:
jsonStr:{"p":{"p1":{"p2":{"id":2222,"name":"xiao2"}},"name":"xiao3"},"id2":"iii","name2":"ffff"}json转换成xmlString:<xml><p><p1><p2><id>2222</id><name>xiao2</name></p2></p1><name>xiao3</name></p><id2>iii</id2><name2>ffff</name2></xml>

XML转换成JSON,见下一篇http://blog.csdn.net/yuxiangaaaaa/article/details/52330221

0 0
原创粉丝点击