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);


}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值