【发布时间】:2012-09-26 23:49:11
【问题描述】:
我很难解决这个代码。这可能看起来很傻,但我无法弄清楚发生了什么。我正在解析 JSONArray(没什么大不了的!)我正在使用 for 循环遍历数组。我想在用户输入和值匹配时打破循环。这是我的代码
String regi = null;
JSONObject studentObject = null;
try {
JSONArray returned = test.getInternetData();
int i;
for (i = 0; i < returned.length(); i++) {
studentObject = returned.getJSONObject(i);
regi = studentObject.getString("REGISTRATION_NO");
if (regi == reg) {
name = studentObject.getString("STUDENT_NAME");
break;
}
}
course = studentObject.getString("COURSE_CODE");
Log.d("Details", name + course + regi + i);//Out put: nullGraduate081018394:name - null
//course: Graduate (same for all), regi: last registration number,
//i: giving totalnumber of objects
据我所知,循环应该在找到匹配项时停止。 COURSE_CODE 将对应于学生。我错过了什么吗?
请注意:函数getInternetData() 正在返回整个JSON Array。循环完全遍历每个对象。
【问题讨论】:
-
我不确定哪条线路引起了麻烦。我觉得我的情况有点不同
-
您在日志中打印的名称是什么?它没有任何数据(从您所做的帖子来看,它是一个空变量)
-
@Sharath 我确定我没有比较空变量。您能指出哪个变量为空?
-
它没有比较,只是尝试将这一行 Log.d("Details", name + course + regi + i) 更改为 Log.d("Details", name + " - "+course + " - "+ regi +" - "+ i) 并返回您在日志中获得的输出
-
变化不大。我得到这样的东西:
null-Graduate-081018394-18。我应该在哪里用我的名字代替 null,我的注册号和我的 slno。我从最后一个对象中获取所有详细信息,并且名称变为空。