Java 错误周期
我的自行车有一个问题。 我用JsonParser解析数据,然后用一个周期打印所有数据,但只收到最后一个结果 代码如下:Java 错误周期,java,android,for-loop,Java,Android,For Loop,我的自行车有一个问题。 我用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: " + js
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());
}
我不明白是什么错误。
在
循环的每次迭代中,您都会覆盖它的值
改变
stringaFinale = json_data.getString("id_Persons") + " " + json_data.getString("name") + " " + json_data.getString("address");
到
注意:您应该使用如下空字符串初始化stringaFinale
String stringaFinale = "";
// 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();
更新:另一个更好的方法是像这样使用StringBuilder
String stringaFinale = "";
// 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();
这是因为在for循环endsWell之后返回stringaFinale,所以在循环的每个迭代中重新分配stringaFinale
,忽略以前的值。。。您希望如何获取多个值的数据?是否进行字符串连接,如stringaFinale=stringaFinale+json_data.getString(“id_Persons”)+“”+json_data.getString(“name”)+“”+json_data.getString(“address”)@JonSkeet如何修复此错误?我们无法真正告诉您如何使用stringaFinale
。。。但是您可能想使用StringBuilder
来构建最终结果…@Python\u 96:很高兴我能提供帮助。请不要忘记接受答案。或者更确切地说,在这方面使用StringBuildercase@Rohit5k2:是的,是的:)别担心^_^