Android Json-判断json是JSONObject还是JSONArray

  • 通过JSONTokener来判断json是JSONObject还是JSONArray
public static String getJsonJointString(String top, String jsonStr) {
        StringBuffer sb = new StringBuffer();
        try {
            Object object = new JSONTokener(jsonStr).nextValue();
            if (object instanceof JSONObject) {
                JSONObject jsonObject = (JSONObject) object;
                Iterator iterator = jsonObject.keys();
                while (iterator.hasNext()) {
                    String key = (String) iterator.next();
                    String value = jsonObject.getString(key);
                    if (hasLower(value)) {
                        String s = getJsonJointString(key,value);
                        s.substring(0, s.length() - 1);
                        sb.append(s);
                    } else {
                        if (top!=null&&!"".equals(top)) {
                            sb.append(top+"."+key).append("=").append(value).append("&");
                        } else {
                            sb.append(key).append("=").append(value).append("&");
                        }
                    }
                }
            } else if (object instanceof JSONArray) {
                JSONArray jsonArray = (JSONArray) object;
                if (jsonArray.length() > 0) {
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject jsonObject = jsonArray.getJSONObject(i);

                        Iterator iterator = jsonObject.keys();
                        while (iterator.hasNext()) {
                            String key = (String) iterator.next();
                            String value = jsonObject.getString(key);
                            if (hasLower(value)) {
                                String s = getJsonJointString(key,value);
                                s.substring(0, s.length() - 1);
                                sb.append(s);
                            } else {
                                if (top!=null&&!"".equals(top)) {//[{},{}]
                                    sb.append(top+"["+i+"]"+"."+key).append("=").append(value).append("&");
                                } else {
                                    sb.append(key).append("=").append(value).append("&");
                                }
                            }
                        }
                    }
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return sb.toString();
    }

    public static boolean hasLower(String json) {
        if (json==null||"".equals(json)) {
            return false;
        }
        if ((json.contains("{") && json.contains("}")) || (json.contains("[") && json.contains("]"))) {
            return true;
        } else {
            return false;
        }
    }

你可能感兴趣的:(android)