我的周期有一个问题。 我用 JsonParser 解析数据,在我使用一个周期打印所有数据后,但我只收到最后一个结果。
这是代码:
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Log.d("id_Persons", "id: " + json_data.getString("id_Persons")
+ ", nome: " + json_data.getString("name")
+ json_data.getString("address")
);
stringaFinale = json_data.getString("id_Persons") + " "
+ json_data.getString("name") + " "
+ json_data.getString("address");
}
return stringaFinale;
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
但是,与
Log.d("id_Persons", "id: " + json_data.getString("id_Persons")
+ ", nome: " + json_data.getString("name")
+ json_data.getString("address")
);
我不明白错误是什么。 This is the screen of app
最佳答案
您将在 for
循环的每次迭代中覆盖它的值。
改变
stringaFinale = json_data.getString("id_Persons") + " " + json_data.getString("name") + " " + json_data.getString("address");
到
stringaFinale += json_data.getString("id_Persons") + " " + json_data.getString("name") + " " + json_data.getString("address");
注意:您应该像这样用空字符串初始化stringaFinale
String stringaFinale = "";
更新:另一种更好的方法是像这样使用StringBuilder
// declare it before the loop
StringBuilder stringaFinale = new StringBuilder(200); // use appropriate size
//Inside the loop
stringaFinale.append(json_data.getString("id_Persons") + " " + json_data.getString("name") + " " + json_data.getString("address"));
//Get the value
stringFinale.toString();
关于java - 错误循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34947240/