Попытка заставить кнопку onclick получить доступ к URL-ссылке API

#javascript

Вопрос:

Я создаю проект новостного приложения, который извлекает данные JSON из API.

Библиотека API предоставляет ссылку на «полную историю».

Как изменить адрес window.open (), если URL-адрес по сути является местоположением массива в файле JSON?

Вот мое решение до сих пор

HTML

  <button onclick="newWindow()">Click for full story</button>
 

язык JavaScript

  function newWindow(){
  window.open(data.news[0].url)
   }

 

JSON

 {
  "status": "ok",
  "news": [
    {
      "id": "4e6",
      "title": "Soccer team wins the World Cup"
      "url": "wwww.newsnetwork.com/soccer-team-wins-the-world-cup"
...
 

Комментарии:

1. Вам нужно использовать AJAX для чтения файла JSON. Проанализируйте его с JSON.parse() помощью , а затем получите доступ к элементу массива.

2. что вы имеете в виду, изменив адрес в адресной строке? не могли бы вы предоставить более подробную информацию? откуда ты берешься data ? каково желаемое поведение? имеется в виду сценарий, который вы хотите реализовать шаг за шагом

Ответ №1:

Вы можете использовать встроенную в javascript функцию fetch, чтобы получить то, что ваш api отправляет обратно. После этого вы должны превратить его в объект(JSON), чтобы получить доступ к его свойствам.

Примечание: Не забывайте обрабатывать ошибки в случае, если api не работает или отсутствует ваш URL-адрес, вы можете сделать все это в .catch

 function newWindow() {
        fetch("http://example.com/movies.json")
        .then(response => response.json())
        .then((data) => {
            window.open(data.news[0].url);
        })
        .catch((error) => console.error("oops:",error));
    }
 

Комментарии:

1. добавление контекста к вашему ответу поможет вам лучше понять ваше решение, а не просто вставлять большой двоичный объект кода без объяснения причин