java - 如何从 Volley 响应中读取数组内的数组?

标签 java android multidimensional-array android-volley

我使用volley向服务器发出请求,服务器以多维数组响应, 我正在尝试读取一个节目中的“第二个”数组“详细信息”;

这就是我用来读取响应的内容:

JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, params,  new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {
    try {
        JSONArray jsonArray = response.getJSONArray("Shows");

        Log.e(TAG, "Response Array: " + jsonArray.length());

        for (int i = 0; i < jsonArray.length(); i++) {

             } catch (JSONException e) {
        e.printStackTrace();
    }
}

我尝试在循环内执行whit,但它不起作用:/

 JSONArray arr = new JSONArray(jsonArray);
    for (int e = 0; e < arr.length(); e++) {
        Log.e(TAG, "INSIDE");
    }

"Shows" : [
    {
    "details" : [ 
        "id" : 23adda,
        "date" : "Monday",
        "time" : "5:00PM"
        "details: [
            "Address" : "123 street";
            "City" : "Test"
        ]
    ],
    "id" : 15sdsd, 
    "Heading" : "The Big Show",
    "Category" : "Family show",
    "AssetId" : 8c8be292,
    }
    {
    "details" : [ 
        "id" : 23adda,
        "date" : "Monday",
        "time" : "5:00PM"
    ],
    "id" : 15sdsd, 
    "Heading" : "The Big Show",
    "Category" : "Family show",
    "AssetId" : 8c8be292,
    }
]

最佳答案

您可以尝试以下代码:

JSONArray jsonArray = response.getJSONArray("Shows");//getting array
     for (int i = 0; i < jsonArray.length(); i++) {
      JSONObject jsonobject= jsonArray.getJSONObject(i);//getting first element 
       String id= jsonobject.getString("id");//getting id
        String Heading= jsonobject.getString("Heading");//getting Heading
         String Category= jsonobject.getString("Category");//getting Category
         String AssetId= jsonobject.getString("AssetId");//getting AssetId

        System.out.println(""+id+""+Heading+""+AssetId+""+Category) ;
     JSONArray jsonObject1= jsonobject.getJSONArray("details"); //getting children array
      for (int j = 0; j < jsonObject1.length(); j++) {
             JSONObject object1 = jsonObject1.getJSONObject(j);
            String id1= object1.getString("id");//getting id
               String date= object1.getString("date");//getting date
            String time= object1.getString("time");//getting time
          System.out.println(""+id1+""+City+""+time) ;

    JSONArray jsonObject2= object1.getJSONArray("details"); //getting children array
     for (int k = 0; k < jsonObject2.length(); k++) {
     JSONObject object2 = jsonObject2.getJSONObject(k);
      String Address= object2.getString("Address");//getting Address
               String City= object2.getString("City");//getting City
          System.out.println(""+Address+""+City) ;
      }    
     }

    }

关于java - 如何从 Volley 响应中读取数组内的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55978178/

相关文章:

Android Studio - 如何配置 Android Studio 在启动时询问要打开的项目?

java - 有没有Java框架来操作/绘制笛卡尔平面?

java - Android:AsyncTask 中的 Jsoup

java - 单击时如何在显示屏内滚动水平 ScrollView 的项目?

android - 强制关闭 TCP/IP (Telnet) 连接

c - 为什么我的程序可以编译但没有执行任何操作?

java - 从 JAVA(MYSQL Insert 语句)和 delayed_jobs ruby​​ gem 处理的队列中手动输入延迟作业表

java - 创建 .jar 文件时的数据库附件

java - Android读取文本文件并拆分

objective-c - 在 Objective-C 中清除一个 int[x][y] 数组