读取 JSON 时值不存在

我的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));


郎朗坤
浏览 81回答 3
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")

米琪卡哇伊

当您执行 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 discardedelements.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"));

慕码人8056858

         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");雕刻出答案!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java