@Deprecated private static Object derefBracketedKey(Object object, String key) throws JSONException { final Object jsonObject = tryParseJson(object, true); if (jsonObject == null || key == null) return null; if (key.indexOf(KEY_DELIM) != -1) return derefComplexKey(jsonObject, key); if (!isBracketedKey(key)) return getElement(jsonObject, key); /* * Dereference key or index from array or object -- null if non-existent */ // For key "arr[0][1]": outer is "arr", inner is "0", next is "[1]" final int keyDelim = key.indexOf(ARR_OPEN); final int keyLength = key.indexOf(ARR_CLOSE) + 1; final String outerKey = key.substring(0, keyDelim); final String innerKey = key.substring(keyDelim + 1, keyLength - 1); if (isBracketedKey(innerKey)) throw new JSONException("Invalid inner key: " + key); final String nextKey = (keyLength < key.length()) ? key.substring(keyLength) : ""; if (nextKey.length() > 0 && nextKey.charAt(0) != ARR_OPEN) throw new JSONException("Invalid next key: " + key); final Object nextObject = (outerKey.isEmpty()) ? getElement(jsonObject, innerKey) : derefCompositeKey(getElement(jsonObject, outerKey), innerKey); return (nextKey.isEmpty()) ? nextObject : derefCompositeKey(nextObject, nextKey); }
@Deprecated public static Object derefComplexKey(Object object, String key) throws JSONException { if (isNull(object)) return null; if (!isComplexKey(key)) return getElement(object, key); final EwList<Object> results = processComplexKey(object, KEY_PATTERN.split(key)); switch (results.size()) { case 0: return null; case 1: return results.get(0); default: return results; } }
deref = object; else deref = (isBracketedKey(outerKey)) ? derefBracketedKey(object, outerKey) : getElement(object, outerKey); return getElement(object, key);