@Banjamin
Пишу

Как получить значение JSON?

Пытаюсь получить значения JSON с https://api.github.com/gists/public. Нужно вытащить следующие: filename, language, raw_url. Не могу двинуться дальше files, подскажите что писать после body[5].files. Индекс 5 для примера.

fetch('https://api.github.com/gists/public')
.then((res)=>{
    console.log('200');
    return res.json()
})
.then((body)=>{
    console.log(body[5].files)
});
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
fetch('https://api.github.com/gists/public')
  .then(r => r.json())
  .then(r => r.flatMap(n => Object
    .values(n.files)
    .map(({ filename, language, raw_url }) => ({ filename, language, raw_url }))
  ))
  .then(r => console.log(r))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@andreysuha
Что то знаю
Вам следует изучить основы js. Для конкретной задачи что такое объекты и как с ними работать
Ответ написан
Комментировать
@nvdfxx
Senior Pomidor developer
fetch('https://api.github.com/gists/public')
.then((res)=>{
    return res.json()
})
.then((body)=>{
    let files = body[3].files,
        output = []
    for (file in files) {
      output.push(
        {
          filename: files[file].filename,
          language: files[file].language,
          raw_url: files[file].raw_url
        }
      )
    }
});
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
Все дело в том что файлов может быть несколько брать только первый? или все?
fetch('https://api.github.com/gists/public')
.then((res)=>{
    console.log('200');
    return res.json()
})
.then((body)=>{
	//let k = Object.keys(body[5].files)[0];
	for(k in body[5].files){
		console.log("filename: "+body[5].files[k].filename);
		console.log("language: "+body[5].files[k].language);
		console.log("raw_url: "+body[5].files[k].raw_url);
    }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы