Browse Source

处理权限问题

Bitliker 8 years ago
parent
commit
49bec56f2c
1 changed files with 17 additions and 7 deletions
  1. 17 7
      app_core/common/src/main/java/com/common/data/JSONUtil.java

+ 17 - 7
app_core/common/src/main/java/com/common/data/JSONUtil.java

@@ -32,7 +32,7 @@ public class JSONUtil {
 		return builder.toString();
 	}
 
-	public static  <T> String map2JSON(List<Map<String, T>> maps) {
+	public static <T> String map2JSON(List<Map<String, T>> maps) {
 		if (maps == null || maps.size() <= 0) return "";
 		StringBuilder builder = new StringBuilder("[\n");
 		for (Map<String, T> m : maps) {
@@ -146,20 +146,30 @@ public class JSONUtil {
 		}
 	}
 
+	private static boolean satisfyGet(JSONObject object, String... keys) {
+		return !(object == null || keys == null || keys.length <= 0);
+	}
+
 	public static JSONObject getJSONObject(JSONObject object, String... keys) {
-		try {
-			String obj = getDataForJson(object, keys);
-			return !validateJSONObject(obj) ? new JSONObject() : JSON.parseObject(obj);
-		} catch (Exception e) {
-			return new JSONObject();
+		if (satisfyGet(object, keys)) {
+			try {
+				for (String key : keys) {
+					if (key != null && object.containsKey(key) && object.get(key) != null && object.get(key) instanceof JSONObject) {
+						return object.getJSONObject(key);
+					}
+				}
+			} catch (Exception e) {
+				return new JSONObject();
+			}
 		}
+		return new JSONObject();
 	}
 
 	public static JSONArray getJSONArray(JSONObject object, String... keys) {
 		try {
 			if (object == null || keys == null || keys.length <= 0) return new JSONArray();
 			for (String key : keys) {
-				if (object.containsKey(key)&&object.get(key) instanceof JSONArray){
+				if (object.containsKey(key) && object.get(key) instanceof JSONArray) {
 					return object.getJSONArray(key);
 				}
 			}