为了账号安全,请及时绑定邮箱和手机立即绑定

读取 JSON 时值不存在

读取 JSON 时值不存在

郎朗坤 2023-03-09 14:59:48
我的JSON{   "destination_addresses" : [      "11/6, Dhandapani St, VGP Seethapathy Nagar, Velachery, Chennai, Tamil Nadu 600042, India"   ],   "origin_addresses" : [ "Magazine Road, St Thomas Mount, Chennai, Tamil Nadu 600016, India" ],   "rows" : [      {         "elements" : [            {               "distance" : {                  "text" : "6.6 km",                  "value" : 6589               },               "duration" : {                  "text" : "21 mins",                  "value" : 1268               },               "status" : "OK"            }         ]      }   ],   "status" : "OK"}我需要从这个 JSON 中获取距离值。我一直在获取值,但在尝试将此 JSON 对象转换为 JSON 数组时出现异常。成功到此为止JSONArray rows= (JSONArray) jsonObject.get("rows");JSONObject elements= (JSONObject) rows.get(0);Log.d("Eleemnrs",String.valueOf(elements));当我执行下面的代码时,距离没有价值 JSONArray rows= (JSONArray) jsonObject.get("rows"); JSONObject elements= (JSONObject) rows.get(0); elements.get("distance"); Log.d("Eleemnrs",String.valueOf(elements));
查看完整描述

3 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

JSONObject 元素= (JSONObject) rows.get(0); 这个结果元素是:


   {

         "elements" : [

               {

                "distance" : {

                   "text" : "10.3 km",

                 "value" : 10320

               },

                "duration" : {

                   "text" : "20 mins",

                   "value" : 1178

               },

                "status" : "OK"

              }

        ]

   }

如果你应该先得到distance你应该得到的值get("elements"),然后是 getJsonObject(0).get("distance")


查看完整回答
反对 回复 2023-03-09
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

当您执行 elements.get("distance") 时,您没有使用该对象


JSONArray rows= (JSONArray) jsonObject.get("rows");

JSONObject elements= (JSONObject) rows.get(0);

//Here you are not assigning the distance object to any variable. It is simply discarded

elements.get("distance"); 

Log.d("Eleemnts",String.valueOf(elements));

您可以按如下方式修改代码以将距离对象放入 JsonObject 并从中读取所需的值。


JSONArray rows= (JSONArray) jsonObject.get("rows");

JSONObject elements= (JSONObject) rows.get(0);

JsonObject distance = elements.get("distance"); 

Log.d("Distance text is ", distance.getString("text"));

Log.d("Distance value is ", distance.getInt("value"));


查看完整回答
反对 回复 2023-03-09
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

         JSONArray rows= (JSONArray) jsonObject.get("rows");

                    JSONObject elements= (JSONObject) rows.get(0);

                    JSONArray one= (JSONArray) elements.get("elements");

                    JSONObject two=(JSONObject)one.get(0);

                    JSONObject three=(JSONObject)two.get("distance");

                    int finalvalue= (int) three.get("value");

雕刻出答案!


查看完整回答
反对 回复 2023-03-09
  • 3 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信