这几天需要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("");
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("
");
return sb.toString();
}
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"}}
9203 xiaobao 943 xiaoxiao
如:{"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("");
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(" ");
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:
2222 xiao2 xiao3
iii ffff