package com.jxtech.base.util;
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;
/**
* json转换工具 jww
*
* @date 2015-3-6 上午10:40:59
*/
public class JsonUtils {
/**
* json 转换成list
*
* @param <T>
* @param json
* @param clazz
* @return
*/
@SuppressWarnings("unchecked")
public static <T> List<T> json2List(String json, Class<T> clazz) {
List<T> result = null;
JSONArray jsonobj = JSONArray.fromObject(json);
result = (List<T>) JSONArray.toCollection(jsonobj, clazz);
return result;
}
/**
* list 转换成json
*
* @param list
* @return
*/
public static String list2Json(List<?> list) {
JSONArray jsonArray = JSONArray.fromObject(list);
return jsonArray.toString();
}
/**
* 将String 转换成Map
* @param jsonStr
* @return
*/
@SuppressWarnings("unchecked")
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 {
map.put(k.toString(), v);
}
}
return map;
}
}