我没有使用JSON,我正在使用谷歌地图距离矩阵API来生成一些我想要使用的数据。
我想从持续时间中提取数字 14147 。
{
"destination_addresses" : [ "Washington, DC, USA" ],
"origin_addresses" : [ "New York, NY, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "226 mi",
"value" : 364089
},
"duration" : {
"text" : "3 hours 56 mins",
"value" : 14147
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
我尝试了一些不同的东西,这是我上次尝试的(数据就是上面的数组):
String data = getOutputAsText(geoService);
JSONObject json = new JSONObject(data);
String duration = json.getJSONArray("rows").getString("duration");
这是控制台输出:
org.json.JSONException: JSONObject["duration"] not found
我确保在发布之前环顾四周,但我找不到能帮助我解决这个问题的任何事情。
我想将值从持续时间传递给我自己的Web服务,我可以这样做,我只是不知道如何提取值。提前谢谢!
答案 0 :(得分:0)
首先,请查看this回答。使用org.json你可以做到smth。那样:
JSONObject obj = new JSONObject("Content of your string here");
JSONArray rows = obj.getJSONArray("rows");
for (int i = 0; i < rows.length(); i++) {
JSONArray elements = rows.getJSONObject(i).getJSONArray("elements");
for(int j = 0; j < elements.length(); j++) {
JSONObject element = elements.getJSONObject(j);
JSONObject duration = element.getJSONObject("duration");
int value = duration.getInt("value");
}
}
上面的代码使用你的json字符串生成了以下输出:14147
P.S。您可以使用您想要的图书馆。这里使用的是用于演示的目的。