解析 jsonarray 时出错

Posted

技术标签:

【中文标题】解析 jsonarray 时出错【英文标题】:error while parsing an jsonarray 【发布时间】:2015-02-08 19:53:28 【问题描述】:

我正在进行网络服务调用,响应是 JSON 格式。 我得到的内容是一个 JSONArray,看起来像这样:

"jsonrpc":"2.0","id":"req-002","re​​sult":[ "id":125043,"date":20110117,"startTime":800,"endTime":850, "kl":["id":71],"te":["id":23],"su":["id":13],"ro":["id ":1], "id":125127,"date":20110117,"startTime":1055,"endTime":1145, "kl":["id":71],"te":["id":41],"su":["id":19],"ro":["id ":31], ]

现在我正在尝试获取数组中的对象,但我只能获取第一个数组:例如,我无法获取第一个“kl”数组,但我无法获取第二个数组。 它总是给我错误:

org.json.JSONException: 索引 1 超出范围 [0..1)

这是我尝试过的:

 JSONObject jsonResult = new JSONObject(s);
            // Get the result object
            JSONArray arr = jsonResult.getJSONArray("result");
            Log.d("Arraylänge", String.valueOf(arr.length()));

            for(int i=0; i<arr.length(); i++)
                JSONObject c = arr.getJSONObject(i);

                anfangStunde[i] = c.getString("startTime");
                endeStunde[i] = c.getString("endTime");

                JSONArray klArr = c.getJSONArray("kl");
                for(int j=0; i<klArr.length(); j++)
                
                    JSONObject k =  klArr.getJSONObject(j);
                    klassenID[j] = k.getString("id");
                

【问题讨论】:

【参考方案1】:

你有一个错字for(int j=0; **i**&lt;klArr.length(); j++)

【讨论】:

以上是关于解析 jsonarray 时出错的主要内容,如果未能解决你的问题,请参考以下文章

org.json.JSONArray 类型的值无法转换为 JSONObject

当解析 JSONArray 在 Retrofit 列表中排在最后时?

安卓。如何解析 JsonArray 中的 JsonArrays

无法使用改造解析对象内部 jsonarray 的 jsonarray?

将解析的 JSONArray 加载到 recyclerView

jsonarray 哪个性能好