• 通过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;        }    }

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android花样loading进度条(四)-渐变色环形
  2. Android多分辨率多屏幕密度下UI适配方案
  3. Android 指纹识别(给应用添加指纹解锁)
  4. android中引用项目工程中的sqlite文件
  5. Android换肤原理和Android-Skin-Loader框
  6. Android BLE与终端通信(一)——Android Blu
  7. StevGuo系列文章翻译之Android中禁止屏保
  8. Android应用坐标系统全面详解
  9. Android(安卓)armeabi的so库兼容问题
  10. Android实现自定义View的自定义属性的一