apiからのレスポンスが以下の形の時、name情報をどう抽出したらいいのか。
{"message": "success”, "people": [{"name": "Alexey Ovchinin", "craft": "ISS"}, {"name": "Nick Hague", "craft": "ISS"}, {"name": "Christina Koch", "craft": "ISS"},{"name": "Alexander Skvortsov", "craft": "ISS"}, {"name": "Luca Parmitano", "craft": "ISS"}, {"name": "Andrew Morgan", "craft": "ISS"}], "number": 6}
色々試行錯誤して、以下のコードで成功。
const api_url = 'http://api.open-notify.org/astros.json';
async function getISS() {
const response = await fetch(api_url);
const data = await response.json();
const { message, number, people } = data;
let Name =[];
for (i = 0; i < number; i++) {
Name.push(people[i]["name"]) ;
}
}
getISS();
peopleの中身が辞書構造を持っているので、順にnameの中身を取り出す。しかし、map関数を使うともっと簡便に出来ることに気づく。
let Name =[];
for (i = 0; i < number; i++) {
Name.push(people[i]["name"]) ;
}
↓↓↓
const Name = people.map(x => x.name)
出来上がりのページはこちら。
コメントを残す