내가 구글 길 찾기 API에서 JSON을 잡하고있어 요청이 여기에 그림과 같다 (길 찾기 응답에서 -> JSON 출력) link자바에서 이름으로 json 배열에서 json 객체를 추출하는 방법은 무엇입니까?
나는 JSON 내에서 특정 항목을 추출하는 방법을 모른다 정렬. 기본적으로 JSONObject 메서드 인 get (String key)에 상응하는 JsonArray에 해당하는 엔트리를 특정 키에 매핑 할 수 있습니다. 그러나 JSONArray에는 이러한 메소드가 없으며 특정 인덱스를 통한 정보 검색 만 지원하는 것으로 보입니다. 이것은 모두 훌륭하지만 좋지만 google 방향 reponses의 내용은 다양 할 수 있습니다. 따라서 특정 키 - 값 쌍을 찾거나 전체 배열을 반복하고 키 값을 확인할 수있는 방법이 필요합니다. 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?
}
}
JSONArray는 배열을, 어떤 키 (만 인덱스)가없는 –
좋아 - 감사합니다 -하지만 어레이의 이름은 알지만 인덱스가 변경되면 배열의 특정 요소를 어떻게 찾을 수 있습니까? – bw15
요소의 이름이 있다면 요소 자체입니다! 실제 예제를 붙여 넣으십시오. –