当前位置: 首页 > 知识库问答 >
问题:

无法从jsonobject中提取jsonarray

宣煜
2023-03-14

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

{
    "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
            } ]
}
 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

共有1个答案

吕树
2023-03-14

这可能是问题所在:

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

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

 类似资料:
  • 问题内容: 我正在尝试从JSON对象提取密钥。在这种情况下,JSON对象是通过对名为 SkyRock的 社交网站的API调用获得的,如下所示: 我基本上想将所有 post_id 值存储在ArrayList中。为了做到这一点,我试图从JSON对象中提取 密钥 ,并按如下方式进行: 问题是无法找到合适的变量类型,在其中我可以存储从 keyset() 方法获得的结果。 我尝试搜索答案,但是在大多数情况下

  • 问题内容: 我正在解决有关作为服务器响应的JSONObject的问题。 正如您在响应中看到的那样,我正在解析JSONObject并创建syncresponse,synckey作为 JSON对象 createdtrs,modtrs,deletedtrs作为 JSONArray 。我想从Deletedtrs访问JSONObject,以便可以将它们分开并使用这些值。即我想提取公司编号,用户名,日期等。

  • 我有登录请求,在请求中我获得了JSESSIONID和XSRF-TOKEN作为Cookie数据,如下所示 如果需要,如何从响应中提取JSESSIONID,以便在注册Cookie中传递该变量 在此处输入图像描述

  • 问题内容: 这是我的代码: OpenSSL能够通过命令行解码X509证书,因此我知道它是有效的证书。但是Java似乎并不喜欢它。 无论有没有尾随的\ n,我都已经厌倦了。 有任何想法吗? 问题答案: - 更新 正如评论中提到的那样,OP解决方案唯一的问题是OP 使用的是密钥,而不是证书。 这是 无需Base64转换 的代码 , 因为它本身可以读取PEM文件(它会查找块本身以知道它正在读取PEM文件

  • 我在AWS上使用Kubernetes来运行一个Play+Akka流服务器。 执行时 我的吊舱进入“ImagePullBackoff”状态。 以下是事件列表: 但是,映像存在于存储库中--执行: 在我的机器上工作。 现在,这个节点上还有其他的豆荚在运行。

  • 当我向我的Twilio号码发送特定的消息时,我希望根据该消息采取行动。问题是,返回的是整个请求,而不是正文。 我在这里遵循了Twilio指南来创建webhook:https://www.Twilio.com/docs/sms/tutorials/how-to-receive-and-reply-java,并对其进行了修改,以查看请求主体,将其与我要查找的内容进行比较,然后根据需要做出响应。 问题正