我正在接收来自Google Directions API的JSON,请求就像这里显示的那样(在路线响应 - > Json输出下)link
我不知道如何从json数组中提取特定条目。基本上我需要的是JSONArray等效的JSONObject方法get(String key),您可以在其中获取映射到特定键的条目。但是,JSONArray没有这样的方法,似乎只支持通过特定索引检索信息。这一切都很好,但谷歌方向响应的内容可能会有所不同 - 所以我需要一种方法来找到一个特定的键值配对,或循环整个阵列,并有办法检查密钥的值。我甚至可以找到一种方法来确定JSONObject映射到的键。有什么建议?例如:如何从JSONArray支路中提取距离JSONObject?
编辑:这是我被困的地方:引用JSON示例输出here ...我试图获取“routes”json数组中“overview_polyline”条目的值。由于我无法通过引用其名称来访问“overview_polyline”条目,因此我必须循环遍历数组,直到找到该条目。但是,当我进入那个条目时,我怎么知道?是的,也许我可以检查条目的JSONObject表示是否具有“points”键,但这不一定是“overview_polyline”条目所独有的。此外,我不能简单地获取(array.length() - n)条目,因为数组中返回的条目数可能会有所不同。简而言之,在我看来,我需要一种方法来检查每个JSONObject的名称(“overview_polyline”),以便可靠地提取该信息。
JSONArray routesArray = resultObj.getJSONArray("routes");
for(int i = 0; i < routesArray.length(); i++)
{
JSONObject obj = routesArray.optJSONObject(i);
if(obj != null)
{
//How do I determine if this object is the "overview_polyline"
//object?
}
}
答案 0 :(得分:2)
route
是JSONArray
的{{1}},所以你必须这样做:
JSONObject