package platform.commons.utils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import com.google.gson.Gson;
public class JsonUtil
{
public static List<Map<String, Object>> parseJSON2List(String jsonStr)
{
JSONArray jsonArr = JSONArray.fromObject(jsonStr);
List list = new ArrayList();
Iterator it = jsonArr.iterator();
while (it.hasNext()) {
JSONObject json2 = (JSONObject)it.next();
list.add(parseJSON2Map(json2.toString()));
}
return list;
}
public static Map<String, Object> parseJSON2Map(String jsonStr)
{
if ((jsonStr == null) || (jsonStr.equals(""))) {
return null;
}
Map map = new HashMap();
JSONObject json = JSONObject.fromObject(jsonStr);
for (Iterator localIterator1 = json.keySet().iterator(); localIterator1.hasNext(); ) { Object k = localIterator1.next();
Object v = json.get(k);
if ((v instanceof JSONArray)) {
List list = new ArrayList();
Iterator it = ((JSONArray)v).iterator();
while (it.hasNext()) {
JSONObject json2 = (JSONObject)it.next();
list.add(parseJSON2Map(json2.toString()));
}
map.put(k.toString(), list);
}
else {
if ((v instanceof JSONObject))
continue;
map.put(k.toString(), v);
}
}
return map;
}
public static List<Map<String, Object>> getListByUrl(String url)
{
try
{
InputStream in = new URL(url).openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null)
{
String line;
sb.append(line);
}
return parseJSON2List(sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static Map<String, Object> getMapByUrl(String url)
{
try
{
InputStream in = new URL(url).openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null)
{
String line;
sb.append(line);
}
return parseJSON2Map(sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String beanToJson(Object object) throws Exception{
if(object==null)
return "";
Gson gson = new Gson();
String jsonStr = gson.toJson(object);
return jsonStr;
}
public static Object jsonToBean(Type type,String jsonStr) throws Exception{
Gson gson = new Gson();
Object bean = gson.fromJson(jsonStr,type);
return bean;
}
}