java - 错误循环

标签 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: " + 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/

相关文章:

java - Java中CompletableFuture如何进行资源清理?

java - 嵌套异常是 java.lang.LinkageError : org/springframework/transaction/interceptor/TransactionInterceptor

powershell - 在Powershell中执行For循环以执行x次不同的服务器重启

java - 使用 java (1.6.0_17) 从 mac(10.6.6) 发送电子邮件

android - 使用 cordova 更改 Android 对话框主题

android - 从 Firebase 数据库填充 ListView

javascript - 将事件处理程序移动到 javascript 函数中

java - 不好的做法?省略循环条件

linux - 在 Linux 中的 for 循环中使用 and(&&) 运算符

java - 使用 java 将文件上传到 php 站点