package com.snail.travellingTrail.common.utils; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.google.gson.Gson; /** * @author fence * */ public class JsonUtil { /** * 解析单个键值对的Json * * @param jsonString * @return */ public static Map<String,Object> parseJson(String jsonString) { try { JSONObject jsonObject; jsonObject = new JSONObject(jsonString); Map<String, Object> map = getMapFromJson(jsonObject); return map; } catch (JSONException e) { e.printStackTrace(); return null; } } public static Map<String,String> parseJson1(String jsonString) { try { JSONObject jsonObject; jsonObject = new JSONObject(jsonString); Map<String, String> map = getMapFromJson1(jsonObject); return map; } catch (JSONException e) { e.printStackTrace(); return null; } } /** * 解析多个键值对的Json * * @param jsonString * @param tagName * @return */ public static List<Map<String, Object>> parseJson(String jsonString, String tagName){ try { JSONArray array ; if(null == tagName) { array = new JSONArray(jsonString); }else { array = new JSONObject(jsonString).getJSONArray(tagName); } List<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); for(int i=0;i<array.length();i++){ JSONObject jsonObject = array.getJSONObject(i); Map<String, Object> map = getMapFromJson(jsonObject); list.add(map); } return list; } catch (Exception e) { e.printStackTrace(); return null; } } public static List<Map<String, String>> parseJson1(String jsonString, String tagName){ try { JSONArray array ; if(null == tagName) { array = new JSONArray(jsonString); }else { array = new JSONObject(jsonString).getJSONArray(tagName); } List<Map<String, String>> list = new ArrayList<Map<String,String>>(); for(int i=0;i<array.length();i++){ JSONObject jsonObject = array.getJSONObject(i); Map<String, String> map = getMapFromJson1(jsonObject); list.add(map); } return list; } catch (Exception e) { e.printStackTrace(); return null; } } /** * 将Json对象转化为Map对象 * * @param jsonObject * @return * @throws JSONException */ private static Map<String, Object> getMapFromJson(JSONObject jsonObject) throws JSONException{ @SuppressWarnings("unchecked") Iterator<String> keys = jsonObject.keys(); Map<String, Object> map = new HashMap<String, Object>(); while (keys.hasNext()) { String key = keys.next(); Object value = jsonObject.getString(key); map.put(key, value); } return map; } private static Map<String, String> getMapFromJson1(JSONObject jsonObject) throws JSONException{ @SuppressWarnings("unchecked") Iterator<String> keys = jsonObject.keys(); Map<String, String> map = new HashMap<String, String>(); while (keys.hasNext()) { String key = keys.next(); String value = jsonObject.getString(key); map.put(key, value); } return map; } /** * 创建Json对象 * * @param object * @return */ public static String createJson(Object object){ try { Gson gson = new Gson(); return gson.toJson(object); } catch (Exception e) { e.printStackTrace(); return null; } } }