#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. добавление контекста к вашему ответу поможет вам лучше понять ваше решение, а не просто вставлять большой двоичный объект кода без объяснения причин