解析json字符串时org.json.JSONObject $ 1无法转换为JSONObject错误 [英] org.json.JSONObject$1 cannot be converted to JSONObject error while parsing json string

查看:1073
本文介绍了解析json字符串时org.json.JSONObject $ 1无法转换为JSONObject错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于解析json,我使用JSONArray和JsonObject:

For parsing json i use JSONArray and JsonObject:

 protected void parseJson()
    {
        JSONObject object=null;
        try {

            object=new JSONObject(json);
            myArray=object.getJSONArray(MY_ARRAY);
            Log.e("Array Length",""+myArray.length());
            key_id=new String[myArray.length()];
            key_name=new String[myArray.length()];

            for (int i=0;i<=myArray.length();i++)
            {
                JSONObject fetchObject=myArray.getJSONObject(i);

                    key_id[i] = fetchObject.getString(KEY_ID);
                    key_name[i] = fetchObject.getString(KEY_NAME);


            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

JSON数据:

 {
        "data": [{
            "key": 1,
            "myval": "hello"
        }, {
            "key": 1,
            "myval": "hello"
        }, {
            "key": 1,
            "myval": "hello"
        }, null, {
            "key": 1,
            "myval": "hello"
        }, {
            "key": 1,
            "myval": "hello"
        }]
    }

我的问题是,当fetchObject获取空对象时,它给我org.json.JSONObject$1不能在try catch中转换为JSONObject. 请帮我如何解决这个问题.....感谢阅读....

My problem is that when fetchObject get the null object it give me org.json.JSONObject$1 cannot be converted to JSONObject in try catch . Please help me how can i solve this.....Thanks for reading....

推荐答案

阅读JsonArray和JsonObject文档后,我了解了如何解决此问题.

After reading JsonArray and JsonObject doc i understand how to sort out this problem.

protected void parseJson()
    {
        JSONObject object=null;
        try {

            object=new JSONObject(json);
            myArray=object.getJSONArray(MY_ARRAY);
            Log.e("Array Length",""+myArray.length());
            key_id=new String[myArray.length()];
            key_name=new String[myArray.length()];

            for (int i=0;i<=myArray.length();i++)
            {

                JSONObject fetchObject=myArray.optJSONObject(i);

                    if(fetchObject==null)
                   {
                     //do nothing
                   }
                   else
                   {
                    key_id[i] = fetchObject.getString(KEY_ID);
                    key_name[i] = fetchObject.getString(KEY_NAME);

                   }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

这篇关于解析json字符串时org.json.JSONObject $ 1无法转换为JSONObject错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆