2011-11-14 100 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