簡體   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