gpt4 book ai didi

android - 无法访问 JSON 数组 Android 的某些成员

转载 作者:搜寻专家 更新时间:2023-11-01 08:29:36 24 4
gpt4 key购买 nike

我有这样的 JSON 数组

[
{
"ride_id": "48",
"user_id": "22",
"event_id": "42",
"driver_id": "0",
"pick_up_location": "11111"
},
{
"ride_id": "48",
"user_id": "21",
"event_id": "42",
"driver_id": "0",
"pick_up_location": "11111"
},
{
"name": "ofir rosner",
"image": "",
"address": "Yokne\\'am Illit, Israel"
},
{
"name": "hhhh",
"image": "profilePictureOfUserId22.JPG",
"address": "ffffd"
}
]

我正在使用 OKhttp3 来检索我的数据,例如

 Response response = client.newCall(request).execute();
JSONArray array = new JSONArray(response.body().string());
for (int i=0; i<array.length(); i++){
JSONObject object = array.getJSONObject(i);
...........

但是 JSONObeject 的对象 i 只包含

{"ride_id":"50","user_id":"2","event_id":"44","driver_id":"0","pick_up_location":"11111"}

但我希望能够做这样的事情 object.setString("name")或在 i 位置获取 object 名称、图像和地址

最佳答案

您的 all 对象没有 name 键值对,因此您可以使用 optString , 如果没有这样的键则返回一个空字符串

JSONArray array = new JSONArray(response.body().string());
for (int i=0; i<array.length(); i++){
JSONObject object = array.getJSONObject(i);
String name = object.optString("name");

// optionally use object.optString("name","No Name Found");
// To display some default string as name

if(!name.isEmpty()){
// we got the data , use it
Log.i("name is ",name); // display data in logs
}
}

或者您可以使用 has其中 确定 JSONObject 是否包含特定键。

JSONArray array = new JSONArray(response.body().string());
for (int i=0; i<array.length(); i++){
JSONObject object = array.getJSONObject(i);
String name;
if(object.has("name")){
name = object.optString("name"); // got the data , use it
}
}

{   // this object has no "name" key-value pair and so does some other object
"ride_id": "48",
"user_id": "22",
"event_id": "42",
"driver_id": "0",
"pick_up_location": "11111"
}

关于android - 无法访问 JSON 数组 Android 的某些成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41911726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com