json轉xml,json轉map

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


public class ConvertUtil {
private static StringBuffer buff=new StringBuffer();
/**

* @param jsonStr
* @return
*/
public static Map<String, Object> parseJSON2Map(String jsonStr) {
Map<String, Object> map = new HashMap<String, Object>();
// 最外層解析
JSONObject json = JSONObject.fromObject(jsonStr);
for (Object k : json.keySet()) {
Object v = json.get(k);
// 如果內層還是數組的話,繼續解析
if (v instanceof JSONArray) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Iterator<JSONObject> it = ((JSONArray) v).iterator();
while (it.hasNext()) {
JSONObject json2 = it.next();
list.add(parseJSON2Map(json2.toString()));
}
map.put(k.toString(), list);
} else {
Object o = null;
if (v instanceof JSONObject) {
o=parseJSON2Map(v.toString());
}else {
o = v;//這裏是表示v是屬性值
}
map.put(k.toString(), o);
}
}
return map;
}

private static void parseJSON2Xml(String jsonStr, StringBuffer xml){
// 最外層解析
JSONObject json = JSONObject.fromObject(jsonStr);
for (Object k : json.keySet()) {
xml.append("<" + k.toString() + ">");
Object v = json.get(k);
// 如果內層還是數組的話,繼續解析
if (v instanceof JSONArray) {
Iterator<JSONObject> it = ((JSONArray) v).iterator();
while (it.hasNext()) {
JSONObject json2 = it.next();
xml.append("<ele>");
parseJSON2Xml(json2.toString(), xml);
xml.append("</ele>");
}
} else {
if (v instanceof JSONObject) {
parseJSON2Xml(v.toString(), xml);
} else {
xml.append(v.toString());
}
}
xml.append("</" + k.toString() + ">");
}
}
public static String parseJSON2Xml(String jsonStr) {
StringBuffer buff=new StringBuffer();
parseJSON2Xml(jsonStr,buff);
return buff.toString();
}

public static void main(String[] args) {
String json = "{\"result\":{\"code\":\"011\",\"desc\":\"aaa\"},\"beans\":[{\"a1\":\"a1v\",\"a12\":\"a12\"},{\"a2\":\"a2\"}],\"nulls\":[]}";
Map map=parseJSON2Map(json);
System.out.println(map);
Map m1=(Map)map.get("result");
System.out.println(m1.get("code"));
List list=(List)map.get("beans");
Map m2=(Map)list.get(0);
System.out.println(m1);
StringBuffer sb = new StringBuffer();
String s= parseJSON2Xml(json);


System.out.println(s);


}


}
發佈了28 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章