[英]Extract json string array value from json object using java
[英]How to extract a json object from a json array by name in java?
我正在从Google Directions API接收JSON,该请求类似于此处显示的请求(在Directions Responses-> Json Output下) 链接
我不知道如何从json数组中提取特定条目。 基本上,我需要的是JSONObject方法get(String key)的JsonArray等效项,您可以在其中将条目映射到特定的键。 但是,JSONArray没有这种方法,并且似乎仅支持通过特定索引来检索信息。 这一切都很好,但是谷歌路线响应的内容可能会有所不同-因此,我需要一种方法来找到特定的键值对,或者遍历整个数组并检查键值。 我什至可以找到一种确定JSONObject映射到的密钥的方法。 有什么建议么? 例:如何从JSONArray分支中提取距离JSONObject?
编辑:这就是我被困的地方:在这里引用JSON示例输出...我正在尝试获取“ 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?
}
}
route
是JSONObject
的JSONArray
,因此您必须采用以下方式:
JSONArray routesArray = resultObj.getJSONArray("routes");
for(int i = 0; i < routesArray.length(); i++) {
JSONObject obj = routesArray.optJSONObject(i);
if(obj != null) {
JSONObject polyline = obj.optJSONObject("overview_polyline");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.