Доступ к вложенным данным в ответе Wiki API JSON

Я все еще относительно новичок во всем этом, но я пытаюсь получить доступ к 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."
        }
    }
}

}

Какой язык вы используете для разбора json?

Bman70 22.05.2019 04:27

Извините, спасибо за ваш ответ. Я использую JQuery/Javascript.

KAllmann 22.05.2019 16:12

Привет, я обновил свой ответ, включив в него версию Javascript.

Bman70 23.05.2019 08:39
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Извлекать — это хеш внутри хэша случайно пронумерованный, который находится внутри хэша страницы, который находится внутри хэша запрос. Итак, вам нужно значение 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).

Потрясающий! Большое спасибо за вашу помощь, я очень ценю это.

KAllmann 23.05.2019 16:02

Другие вопросы по теме