API Википедии - Доступ к объекту JSON - PullRequest
6 голосов
/ 14 ноября 2011

Я пытаюсь извлечь текст из статьи в Википедии, используя их API (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);

К сожалению, ни Google Chrome, ни Firefox, похоже, не могут разобрать клавишу '*'. Когда я выгружаю полный объект «data» в консоль, я вижу, что (вложенными) ключами для структуры данных являются «parse», «text» и '*'. Я даже могу выбросить нужный мне текст до клавиши «*». * 1012 Т.е. *

var dat = data.parse.text;

работает. Просто символ «*» не хочет быть узнаваемым.

Есть идеи, как это исправить? В идеале я хотел бы получить доступ к значению, на которое ссылается клавиша '*'. Я просто не знаю, как запрограммировать его в JavaScript.

1 Ответ

8 голосов
/ 14 ноября 2011

Символ * не разрешен в качестве части идентификатора (имени переменной) в JavaScript, поэтому синтаксис не работает. Вместо этого вы можете использовать запись массива / индекса для доступа к свойствам, используя любую строку, независимо от того, является ли это допустимым идентификатором:

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