试图解释一个 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());
}
我正在尝试对一些代码做一份书面报告,我在 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());
}