【发布时间】:2017-11-14 15:53:56
【问题描述】:
我对 JSON 的使用不多,我正在使用 Google Maps Distance Matrix API 来生成一些我想使用的数据。
我想从 duration 中提取数字 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
我在发帖前确保环顾四周,但没有发现任何可以帮助我解决这个特殊问题的东西。
我想将值从持续时间传递给我自己的网络服务,我可以这样做,我只是不知道如何提取值。提前谢谢!
【问题讨论】:
-
创建代表存储在 JSON 中的数据的类,然后使用 Jackson 将 JSON 转换为这些类。
-
你使用哪个库来解析你的 Json?
-
@DwB 我不会为这个小的 json sn-p 创建 Java 模型。我宁愿“动态地”解析它
-
@ArthurEirich 谢谢 :) 我从您提供的链接和示例中找到了解决方案。
-
@Andremoniy 我编辑了 OP 并没有校对最后一部分,我的错。好尴尬!哈哈
标签: java arrays json google-api