2013-02-07 2 views
0

이것은 "wiki search"및 콜백 "wikipedia"에 대한 위키 피 디아 링크입니다.json의 첫 번째 문자열을 호출합니다.

http://en.wikipedia.org/w/api.php?action=opensearch&search=wiki&callback=wikipedia

나는이 나에게 autosuggestions을 제공하는 다음

function wikipedia(w){ 
    alert(w) 
} 

같은 것을 사용하지만, 그것은 나에게 전체 코드를 제공합니다. 예를 들어이 json의 첫 번째 결과와 같이 호출 할 수있는 자바 스크립트 코드가 있습니까?

내가 시도 다음

w[1] 
w.wiki[0] 

하지만 성공 같은 많은. 당신이 jQuery를 알고있는 경우

+1

링크는 wikipedia (데이터) 함수를 보여줍니다. 귀하의 코드에서 'w'는 기능과 모든 데이터를 의미합니까? – luckystars

+0

또한 "Uncaught TypeError : undefined"속성을 읽을 수 없습니다. 코드가 잘못 작성되었으며 함수가 호출 되었기 때문에 (두 번) 데이터가 위키 피 디아에서 수신되기 전에 있었던 이유 – AMD

답변

2

당신은 당신이 this

+1

What 's 네이티브'JSON.parse'에 문제가 있습니까? –

+0

@Kolink가 언급 한 것처럼 jQuery – AMD

+0

을 사용하지 않습니다. JSON.parse를 사용할 수 있습니다. 이미 구현되었음을 깨닫지 못했습니다. – pwolaq

3

제안의 목록 w[1]에서 사용할 수 있습니다 시도 할 수 있습니다, 객체에이 JSON 문자열을 구문 분석 할 수 있고, 당신은 그것으로 뭔가를 그 목록을 반복해야합니다.

+1

@ Amden 그래서 진짜 문제는'w'가 정의되지 않았다는 것입니다. –

2

w [1]이 (가) 말한 것처럼 오류를 발생시키는 경우 코드에 다른 문제가있을 수 있습니다. jQuery를 사용할 수 있다면 jsonp를 강력히 추천합니다. 이 코드는 당신이 무엇을 물어 않습니다 :

http://jsfiddle.net/Hg4KJ/

$.ajax({ 
    url: 'http://en.wikipedia.org/w/api.php?action=opensearch&search=wiki&callback=wikipedia', 
    dataType: 'jsonp', 
    callback: 'wikipedia' 
}).done(function(w){ 
    var items = w[1]; 

    for(var i = 0, il = items.length; i < il; i++){ 
     console.log(items[i]); 
    } 
}); 
1

는 어쨌든 jQuery를 사용하지 않는 경우이

function wikipedia(w) { 
    "use strict"; 
    var j = w;//JSON.parse(w); as commented, no need to parse. 
    alert(j[1]); 
} 

을보십시오.

+2

JSON-P이기 때문에,'w'는 실제로 JSON을 포함하고 있지만 이미 객체입니다. 그냥 링크를보십시오. –

+0

업데이트 됨, 감사합니다. – romo

관련 문제