Я все еще относительно новичок во всем этом, но я пытаюсь получить доступ к API Википедии, чтобы получить значение «извлечь» и добавить текст к элементу html. Проблема в том, что «страницы» будут меняться в зависимости от ввода пользователя. Есть ли способ получить доступ к информации с учетом случайного числа в ответе JSON? * Редактировать. Я использую Jquery/Javascript. это был запрос API, который я отправил: https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext&redirects=1&titles=Pug
{
"batchcomplete": "",
"query": {
"normalized": [
{
"from": "pug",
"to": "Pug"
}
],
"pages": {
"21234727 (this number is will change/be random)": {
"pageid": 21234727,
"ns": 0,
"title": "Pug",
"extract": "The pug is a breed of dog with physically distinctive features of a wrinkly, short-muzzled face, and curled tail. The breed has a fine, glossy coat that comes in a variety of colours, most often fawn or black, and a compact square body with well-developed muscles.\nPugs were brought from China to Europe in the sixteenth century and were popularized in Western Europe by the House of Orange of the Netherlands, and the House of Stuart. In the United Kingdom, in the nineteenth century, Queen Victoria developed a passion for pugs which she passed on to other members of the Royal family.\nPugs are known for being sociable and gentle companion dogs. The American Kennel Club describes the breed's personality as \"even-tempered and charming\". Pugs remain popular into the twenty-first century, with some famous celebrity owners. A pug was judged Best in Show at the World Dog Show in 2004."
}
}
}
}
Извините, спасибо за ваш ответ. Я использую JQuery/Javascript.
Привет, я обновил свой ответ, включив в него версию Javascript.
Извлекать — это хеш внутри хэша случайно пронумерованный, который находится внутри хэша страницы, который находится внутри хэша запрос. Итак, вам нужно значение json->query->pages->random_number->extract
.
Это требует присвоения имени случайному числу, чтобы вы знали, как обращаться к нему каждый раз. Вы не сказали, какой язык вы используете, но я бы попробовал что-то подобное в Perl (если вы предоставите свой язык выбора, кто-то другой может показать соответствующую операцию):
foreach my $pagenum ( keys %{$json{'query'}{'pages'}}) {
print "Random number is now called $pagenum\n";
my $extract = $json{'query'}{'pages'}{$pagenum}->{'extract'};
print "Extract is $extract\n";
}
Результат печати $extract
:
The pug is a breed of dog with physically distinctive features of a wrinkly...
и др.
Я заставил своего сына перевести операцию Perl на Ruby, так что это тоже работает. (Предположим, что JSON находится в переменной с именем json
):
randnum = json['query']['pages'].keys[0]
extract_value = json['query']['pages'][randnum]['extract']
puts extract_value
Обновлено: (указанный OP язык)
Я не очень хорошо разбираюсь в Javascript, но это, похоже, работает:
var extractValue = Object.values(your_json.query.pages)[0].extract;
(где ваш_json — полученные вами данные JSON).
Потрясающий! Большое спасибо за вашу помощь, я очень ценю это.
Какой язык вы используете для разбора json?