解析 jsonarray 时出错
Posted
技术标签:
【中文标题】解析 jsonarray 时出错【英文标题】:error while parsing an jsonarray 【发布时间】:2015-02-08 19:53:28 【问题描述】:我正在进行网络服务调用,响应是 JSON 格式。 我得到的内容是一个 JSONArray,看起来像这样:
"jsonrpc":"2.0","id":"req-002","result":[ "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**<klArr.length(); j++)
【讨论】:
以上是关于解析 jsonarray 时出错的主要内容,如果未能解决你的问题,请参考以下文章
org.json.JSONArray 类型的值无法转换为 JSONObject
当解析 JSONArray 在 Retrofit 列表中排在最后时?
安卓。如何解析 JsonArray 中的 JsonArrays
无法使用改造解析对象内部 jsonarray 的 jsonarray?