2012-11-17 5 views
0

웹 앱에서 foursquare API를 사용하고 있는데 Foursquare에 대한 호출이있어 결과가 죽었습니다. 그러나 원하는 방식으로 구문 분석 할 수 없습니다. 나는 제 3 자 파서를 사용하고 싶지 않습니다. 왜냐하면 그것들이 저를 완전히 혼란스럽게 만들었 기 때문입니다. 앱이 거리 별 클릭 가능한 장소 이름의 목록을 알려주고 클릭하면 해당 장소의 위도와 경도에 변수가 지정됩니다.제 3 자없이 foursquare json을 구문 분석하십시오.

$(document).ready(function(){ 
$.getJSON("https://api.foursquare.com/v2/venues/search?ll=-27.58818,-48.523248& 
    client_id=9&client_secret=9&v=20111107", 
    function(data){ 
//code here 
     }); 
    }); 

결과는 다음과 같이 : 필자 잭슨이 실패로 제 3 자 시도 지금까지

{"meta": 
    {"code":200}, 
"response": 
{"venues": 
[{"id":"4c158143a1010f47a1364e18", 
"name":"Parma Pizza", 
"contact":{"phone":"+554832346363","formattedPhone":"+55 48 3234-6363"}, 
"location":{"address":"R. Lauro Linhares, 1052", 
"lat":-27.588341, 
"lng":48.5232834, 
"distance":18, 

을, 실패와 이름을 경고, 실패와 document.write를, 그리고 어떤 종류의 $ 각 제거제. 또한 실패했습니다. 제발 내가 너무 붙어 있도록 도와주세요.

+0

그들은 실패 했는가? 먼저 콜백이 실행 중임을 확인 했습니까? –

답변

0

jQuery가 이미 $.getJSON으로 JSON 파일을 구문 분석하고 있습니다. 이전 브라우저를 사용하지 않는 한 타사 JSON 파싱 라이브러리가 필요하지 않습니다. (코드베이스에 JSON3.js을 포함해야하지만, 사이트를 사용하려는 누군가가 이전 브라우저에있는 경우에만 포함하십시오. 그 외의 다른 작업은 필요하지 않습니다.)

data 변수 콜백 함수에 전달되는 것은 JavaScript 객체입니다. data.meta.code을 입력하여 code (200) 또는 data.response[0].name 값을 Parma Pizza으로 반환하면됩니다.

귀하의 목록을 생성하는 일은 힘든 일을해야 할 것입니다.

$.getJSON("https://api.foursquare.com/v2/venues/search?ll=-27.58818,-48.523248&client_id=9&client_secret=9&v=20111107", function(data){ 
    $.each(data.response, function(index, elm){ 
     console.log(elm.name); 
    }); 
}); 

모든 장소 이름의 목록을 인쇄 할 수 쿼리에서 반환 : 당신은 쉽게하지만 장소 불구하고 반복 $.each를 사용할 수 있습니다.

+0

도움이되었습니다! 마침내 경고 (data.response.venues [0] .name)를 사용하여 파르마 피자를 반향시킬 수는 있지만 작업 목록을 가져올 수 없으며 아무 것도 표시하지 않고 콘솔에서 경고 할 때 정의되지 않았습니다. – Celeste

+0

사실, 나는 그들에게 각각 다른 변수를 할당 한 다음, ala list에서 그들을 반복했다. 그러나 그것은 나를 통해 답변을 투표 못하게됩니다. – Celeste

0

는 셀레스트

@ 난 당신이 tkone의 코드에 .venues에게을 추가하여 문제를 해결할 수 있다고 생각합니다. 적어도 나를 위해 일했습니다.

$.getJSON("https://api.foursquare.com/v2/venues/search?ll=-27.58818,-48.523248&client_id=9&client_secret=9&v=20111107", function(data){ 
$.each(data.response.venues, function(index, elm){ 
    console.log(elm.name); 
}); 

tkone의 대답에 코멘트하지 죄송합니다,하지만 난 의견을 충분히 평판이 없습니다 : ..../이상한 시스템을 어떤 식으로

관련 문제