Java 无法从jsonobject提取jsonarray

Java 无法从jsonobject提取jsonarray,java,arrays,json,retrofit2,Java,Arrays,Json,Retrofit2,我一直在与使用改进的服务器的响应作斗争 我有来自服务器的json响应 { "success": true, "message": "Your Requests", "data": { "requests": [ { "_id": "5d163a5ed2399f8be6d8d867", "created": "2019-06-28T16:03:42.463Z",

我一直在与使用改进的服务器的响应作斗争

我有来自服务器的json响应

{
    "success": true,
    "message": "Your Requests",
    "data": {
        "requests": [
            {
                "_id": "5d163a5ed2399f8be6d8d867",
                "created": "2019-06-28T16:03:42.463Z",
                "pickupCoordinates": [
                    8.0099,
                    6.0909
                ],
                "destinationCoordinates": [
                    9.088788,
                    3.099403
                ],
                "customerName": "Seun Akinbode",
                "pickupAddress": "Lekki",
                "destinationAddress": "Ajah",
                "accessCode": "3334",
                "busPlate": "DD222RR",
                "flaName": "Simi",
                "flaEmail": "awele@kobo360.com",
                "__v": 0
            } ]
}
我使用下面的类来解析json,但不幸的是,它无法将数组请求提取到jsonArray中

 public ArrayList<RequestModel> getData(String response)
        {
            Log.d("responseData :", response);
            ArrayList<RequestModel> dataList = new ArrayList<>();
            try {
                JSONObject mainObj = new JSONObject(response);
                JSONArray array = mainObj.getJSONArray("data");
                Log.d("The main Array :", array.toString());
                RequestModel data;
                for(int i = 0;i<array.length();i++)
                {
                    data = new RequestModel();
                    JSONObject resObj = array.getJSONObject(i);
                    JSONArray reqArray = resObj.getJSONArray("requests");
                    for( int j =0;j<reqArray.length();j++) {
                        JSONObject reqObj = reqArray.getJSONObject(j);
                        data.setAccessCode(reqObj.getString("accessCode"));
                        Log.d("Accessecode :", reqObj.getString("accessCode"));
                        data.setCustomerName(reqObj.getString("customerName"));
                        Log.d("customerName :", reqObj.getString("customerName"));
                    }

                    dataList.add(data);


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

            return dataList;
        }

Logcat正在打印JSONObject,但它说。。。org.json.JSONObject类型的数据无法转换为JSONArray

这可能是问题所在:

JSONArray array = mainObj.getJSONArray("data");

数据是响应中看到的对象,而不是数组。

您试图从数据字段中提取数组,而响应包含对象。也许您的意思是获取对象数据,然后数组从其中请求