繁体   English   中英

如何在Java中按名称从JSON数组中提取JSON对象?

[英]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?
                }
            }

routeJSONObjectJSONArray ,因此您必须采用以下方式:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM