Web APIで気象情報を取得して利用しようとしています。
つかっているAPIでは、以下のjsonで気象情報を取得できます。
json
1 "locations":{ 2 "YOKOHAMA,JA":{ 3 "values":[ 4 0:{ 5 "temp":59.3 6 "datetimeStr":"2019-01-01T08:00:00-05:00" 7 "conditions":"Partially cloudy" 8 } 9 ] 10 } 11 }
axiosを使用して上記のjsonを取得すると、自動でjsのオブジェクトに変換されていた(?)ことを確認したので、
そのオブジェクトから最下層のキー:conditionsの値を取得するため、以下のコードを書きました。
js
1 2locations.YOKOHAMA,JA.values[0].conditions
すると、以下のエラーが出ました。
Uncaught (in promise) ReferenceError: JA is not defined
「YOKOHAMA,JA」をキーとして認識できていないということだと思うのですが、どのようにしたら値を取得できるでしょうか。
実際のコードは以下の通りです。
js
1 2 import axios from "axios"; 3 4 const options = { 5 method: 'GET', 6 url: 'https://xxxx', //APIのURL 7 params: { 8 startDateTime: '2021-11-04T00:00:00', 9 aggregateHours: '24', 10 location: 'YOKOHAMA,JA', 11 endDateTime: '2021-11-05T00:00:00', 12 unitGroup: 'metric', 13 dayStartTime: '8:00:00', 14 contentType: 'json', 15 dayEndTime: '17:00:00', 16 shortColumnNames: '0' 17 }, 18 headers: { 19 'x-rapidapi-key': xxxxxx, //API key 20 'x-rapidapi-host': xxxxxx //API Host 21 } 22 }; 23 24 const WeatherRequest = () => { 25 return axios.request(options) 26 .then(function (response) { 27 console.log(typeof(response.data)) //ここでobjectであることを確認 28 console.log(response.data) //ここでYOKOHAMA,JAがキーとなっていることを確認 29 return response.data; 30 }) 31 .catch(function (error) { 32 console.error(error); 33 }); 34} 35 36export default WeatherRequest
js
1import WeatherRequest from "../lib/api_visualCrossingWeather" 2 3const weather = WeatherRequest() 4weather.then((res) => { 5 console.log(res.locations.YOKOHAMA,JA.values[0].weathertype) //ここでエラー 6})
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。