JSON对象无法获取

时间:2016-02-19 02:38:34

标签: java android json android-studio

我遇到了一些问题,我希望得到一个JSON格式的数组对象字符串,

并且阵列确定[{"代码":" 123","路径":" 456"},.... }]

但在工作时

JArray.getJSONObject(0).getString("code")

它的显示" null"

有人能解释为什么会这样吗?

感谢您的解决方案

for(int i=0;i<JArray.length();i++) {
            try {
                avr_hash = JArray.getJSONObject(i).getString("code");
                img_adress[JArray.length()] = JArray.getJSONObject(i).getString("path");
            }catch (JSONException e){
                Log.e("Catch obj",e.toString());
            }
}

enter image description here

IDE:Android Studio

解决方案:数组索引设置错误

2 个答案:

答案 0 :(得分:2)

我认为您应该将exist_json_array_count替换为i,如下所示

   for(int i=0;i<exist_json_array_count;i++) {
        try {
            avr_hash = JArray.getJSONObject(i).getString("code");
            img_adress[i] = JArray.getJSONObject(i).getString("path");
        }catch (JSONException e){
            Log.e("Catch obj",e.toString());
        }

原因是,索引不应该是数组的大小,因为它从0到13开始(因为大小是14)。

答案 1 :(得分:1)

对于错误消息,似乎数组正由不存在的索引访问。

int exist_json_array_count = JArray.length(); 

以上表示数组的长度。 Java中的数组具有零基索引。因此,长度为4的数组将具有0,1,2,3索引处的元素。

img_adress[exist_json_array_count] = JArray.getJSONObject(exist_json_array_count).getString("path");

在上面的行中,“exist_json_array_count”变量具有数组的长度,这解释了使用无效索引访问数组的错误消息。

显然,从错误消息中可以看出:[0..14]表示有效索引的范围包括0且不包括14.

  img_adress[i] = JArray.getJSONObject(i).getString("path");

以上代码是建议的更改,假设您希望所有路径都在im_address数组中。