Java 值不为';t在读取JSON时存在
我的JSONJava 值不为';t在读取JSON时存在,java,json,Java,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"
{
"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));
JSONObject元素=(JSONObject)行。获取(0);
这一结果是:
如果您应该获取距离值,那么您应该首先获取(“元素”),然后获取JSONObject(0)。获取(“距离”)在获取元素时,您没有使用对象。获取(“距离”) 您可以按如下方式修改代码,将距离对象放入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"));
雕刻出答案
2019-07-06 17:28:59.523 10648-10648/com.example.newjourney I/System.out:…
也是JSON的一部分吗?如果没有,请删除。如果你问的是一个问题,最好不要介绍其他人,让其他人只关注你问的问题。elements.get(“distance”)代码>获取对象(因为它是一个对象,而不是一个数字),然后丢弃它。您可能希望将其存储在变量中。然后您可以从中获取文本
或值
,这就是您可以轻松记录的内容(分别是字符串和/或数字),您希望从距离对象中获取哪个值?“文本”或“值”?但我不知道如何获得element@subash它是一个嵌套构造。JSONObject rows0=(JSONObject)rows.get(0)
然后JSONArray elements=(JSONArray)rowsObj.get(“elements”)
。然后JSONObject element0=(JSONObject)elements.get(0)
。然后JSONObject distance=(JSONObject)element0.get(“distance”)
。您应该了解更多关于构建json的构造。
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));
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"));
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");