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")
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"));
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");
雕刻出答案!
添加回答
举报