我试图使用PHP将我的服务器中的一些数据解析为使用JSONObject和JSONArrays的Android Studio上的ListView,并且在尝试将JSON放入对象时在for循环中收到错误,错误是'没有结果的价值'尽管先前输出了JSON数组,但它显示了那里的数据。
循环:
Log.d("json: ", result);
JSONObject jsonObject = new JSONObject(result);
JSONArray jsonArray = jsonObject.getJSONArray("results");
for (int i = 0; i<1; i++){//<jsonArray.length()-1
JSONObject getObj = jsonArray.getJSONObject(i);
JSONObject classObj = getObj.getJSONObject("results");
Classes dailyClasses = new Classes();
dailyClasses.setClass_id("" + classObj.getString("id"));
dailyClasses.setClass_name("" + classObj.getString("name"));
dailyClasses.setClass_room("" + classObj.getString("room"));
dailyClasses.setClass_day("" + classObj.getString("day"));
dailyClasses.setClass_time("" + classObj.getString("time"));
classList.add(dailyClasses);
}
错误:
02-04 17:45:48.830 23024-23047/com.example.cameron.projectapp W/System.err: org.json.JSONException: No value for results
这条线与&#39;结果&#39;是我的JSONArray的名字:
JSONObject classObj = getObj.getJSONObject("results");
我错过了一些非常明显的东西吗?
答案 0 :(得分:0)
你已经拥有了数组现在你需要的只是单个数组,不需要再次获取数组,因为它不存在。
像这样更改for
循环
for (int i = 0; i<jsonArray.length(); i++){
JSONObject classObj = jsonArray.getJSONObject(i);
Classes dailyClasses = new Classes();
dailyClasses.setClass_id("" + classObj.getString("id"));
dailyClasses.setClass_name("" + classObj.getString("name"));
dailyClasses.setClass_room("" + classObj.getString("room"));
dailyClasses.setClass_day("" + classObj.getString("day"));
dailyClasses.setClass_time("" + classObj.getString("time"));
classList.add(dailyClasses);
}
答案 1 :(得分:0)
试试这个
for (int i = 0; i<1; i++){//<jsonArray.length()-1
JSONObject classObj = jsonArray.getJSONObject(i);
Classes dailyClasses = new Classes();
dailyClasses.setClass_id("" + classObj.getString("id"));
dailyClasses.setClass_name("" + classObj.getString("name"));
dailyClasses.setClass_room("" + classObj.getString("room"));
dailyClasses.setClass_day("" + classObj.getString("day"));
dailyClasses.setClass_time("" + classObj.getString("time"));
classList.add(dailyClasses);
}