2011-11-14 6 views
6

위키피디아 기사에서 API를 사용하여 텍스트를 가져 오려고합니다 (API는 그들이 제공하는 것에 대한 관대 한 용어이지만 우리는 그것을 사용합니다). 후속 JSON 객체를 파싱하는 것과 관련하여 문제가 발생했습니다.위키 피 디아 API - JSON 객체에 액세스하기

$.getJSON("http://en.wikipedia.org/w/api.php?action=parse&format=json&callback=?", {page:"Red Sea clownfish", prop:"text"}, function(data) { 

내가 다음 명령을 사용하여 문자열에이 정보를 구문 분석을 시도 : 은 즉, 객체는 내가 그 레이블이 명령을 실행 한 후 '*'같은 것이있는 키 아래 찾고 있어요 텍스트가 포함 : 그때 사용하여 콘솔에 출력하고

var dat = data.parse.text.*; 

: 불행하게도

console.log(dat); 

, 구글 크롬이나 파이어 폭스도는 01을 구문 분석 할 수있을 것키. 전체 '데이터'개체를 콘솔에 덤프하면 데이터 구조의 (중첩 된) 키가 '구문 분석', '텍스트'및 '*'임을 알 수 있습니다. 필요한 텍스트를 '*'키까지 덤프 할 수도 있습니다. 나는.

var dat = data.parse.text; 

작품입니다. '*'문자가 인식되기를 원하지 않는다는 것입니다.

해결 방법에 대한 의견이 있으십니까? 이상적으로 '*'키가 참조하는 값에 대한 액세스 권한을 얻고 싶습니다. 난 그냥 자바 스크립트에서 프로그래밍하는 방법을 모르겠다.

+0

, 무슨 일이 =은'콜백의': 대신에 관계없이 유효한 식별자인지의 문자열을 사용하여 속성에 액세스하는 배열/첨자 표기법을 사용할 수 있습니까? (아마도 MediaWiki가 유효하지 않은 문자를 제거하기 때문에 빈 콜백과 동일하게 작동하는 것 같습니다.) –

+1

예! Wikipedia/MediaWiki는 의심의 여지없이 세계에서 가장 끔찍한 API를 가지고 있습니다. – Jaseem

답변

8

* 문자는 JavaScript에서 식별자 (변수 이름)의 일부로 사용할 수 없으므로 구문이 작동하지 않습니다.

그냥 호기심
var dat = data.parse.text['*']; 
+0

작동! 빠른 응답에 감사드립니다! – Mephistopheles

관련 문제