2011-11-14 166 views
6

我試圖用他們的API將文本從維基百科文章中提取出來(API是對他們所提供的東西的慷慨解釋,但是我們會用它來猜測),而且我遇到關於解析後續JSON對象的問題,我回來了。 也就是說,對象包含我的標籤是「*」,使得在運行命令之後鍵下尋找文本:Wikipedia 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); 

不幸的是,谷歌瀏覽器火狐也似乎能夠解析'*'鍵。當我將完整的'data'對象轉儲到控制檯時,我可以看到數據結構的(嵌套)鍵是'parse','text'和'*'。我甚至可以將我需要的文本轉儲到'*'鍵。即

var dat = data.parse.text; 

工程。只是'*'字符不想被識別。

有關如何解決此問題的任何想法?理想情況下,我想訪問'*'鍵引用的值。我只是不知道如何在JavaScript中編程。

+0

出於好奇,「callback =?」是什麼? (它似乎與空回調相同,大概是因爲MediaWiki正在刪除無效字符。) –

+1

是的!維基百科/ MediaWiki毫無疑問是世界上最可怕的API。 – Jaseem

回答

8

*字符不允許作爲JavaScript中標識符(變量名稱)的一部分,因此語法不起作用。相反,您可以使用數組/下標符號使用任何字符串訪問屬性,而不管它是否是有效的標識符:

var dat = data.parse.text['*']; 
+0

作品!謝謝你的快速反應! – Mephistopheles