试图解释一个 java for 循环,它请求 JSON 对象和队列请求

Trying to explain a a java for loop which requests JSON objects and requests for Queues

我正在尝试对一些代码做一份书面报告,我在 Youtube 上找到了一个。但是,我不明白这个循环的某些部分是如何工作的。我知道它遍历列表中的每个项目并获取每个变量的每个值,然后将所有值添加到列表中,该列表显示在 Android 工作室的 XML 视图中。如果有人可以分解正在发生的事情,将不胜感激!

private void setupData() {
        RequestQueue queue = Volley.newRequestQueue(this);
        String url =" - hidden - ";

        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
                            JSONArray jsonArray = response.getJSONArray("data");
                            for (int i = 0; i < jsonArray.length() ;  i++){
                                JSONObject jo = jsonArray.getJSONObject(i);
                                System.out.println(jo.toString());
                                Supplier supplier = new Supplier(String.valueOf(jo.getInt("id")), jo.getString("name"), jo.getString("url"), jo.getString("specialization"), jo.getString("country"), jo.getInt("rating"));
                                supplierList.add(supplier);
                                System.out.println(jsonArray.length());
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                System.out.println(error.toString());
                System.out.println("That didn't work!");
            }
        });
        queue.add(request);
    }

尽管您可以简单地阅读有关 JSONObject class 和属于该包的所有其他 classes 的信息。但是,让我在这里用一个例子来表达我的理解。 这是正在收到的响应 json。

{
  "data": [
  {
   "id": 1,
   "name": "ABCD",
   "url": "https://www.whosebug.com",
   "specialization": "master",
   "country": "India",
   "rating" : 5
  },
  {
   "id": 1,
   "name": "ABCD",
   "url": "https://www.whosebug.com",
   "specialization": "master",
   "country": "India",
   "rating" : 5
  }]
}

代码正在尝试处理这个完整的 json。 它首先将“数据”对象读入一个数组,因为它代表一个数组,然后将该数组中的每个对象块转换为供应商模型class,然后将其添加到供应商列表中。

JSONArray jsonArray = response.getJSONArray("data"); // reads the "data" attribute.
                        for (int i = 0; i < jsonArray.length() ;  i++){ // Iterates every block, every block inside this array represent a JSONObject
                            JSONObject jo = jsonArray.getJSONObject(i); // Reads every block using simple loop and index logic
                            System.out.println(jo.toString());
                            Supplier supplier = new Supplier(String.valueOf(jo.getInt("id")), jo.getString("name"), jo.getString("url"), jo.getString("specialization"), jo.getString("country"), jo.getInt("rating")); // Reads the attributes from the JSONObject to create an instance of Supplier class
                            supplierList.add(supplier); // Adds the supplier instance to the list
                            System.out.println(jsonArray.length());
                        }