异步等待JSON返回

问题描述 投票:0回答:1

我正在尝试从MesoWest API服务返回的JSON结构中访问一些数据以获取天气数据。目前,我正在尝试访问最新的雪深度观测值。贝克滑雪场,最终我想让请求更复杂,并绘制时间序列的数据。我认为只需从一个传感器的最新观察开始将是优化我的语法的最佳位置,但是在访问对象中的特定值时遇到问题。有人可以向我提供有关这些方法的任何说明吗?谢谢!

我的Javascript如下,我一直在使用JSBin.com以轻量级方式测试它:

async function getObs() {
    try {
        let response = await fetch('http://api.mesowest.net/v2/stations/nearesttime?&stid=mtb42&units=ENGLISH&token=804c1eb09a394255beef8e84b68123bf');
        if (response.ok) {
            let jsonData = await response.json();
            //console.log(jsonData);
            let obs = jsonData.STATION;
            console.log(obs);

        }
    throw new Error('Request Failed!');
    } catch (error) {
        //console.log(error);
    }
}

getObs();

哪个有效,只返回整个对象。当我尝试访问特定值时,例如:

async function getObs() {
    try {
        let response = await fetch('http://api.mesowest.net/v2/stations/nearesttime?&stid=mtb42&units=ENGLISH&token=804c1eb09a394255beef8e84b68123bf');
        if (response.ok) {
            let jsonData = await response.json();
            //console.log(jsonData);
            let obs = jsonData.STATION.OBSERVATIONS.snow_depth_value_1;
            console.log(obs);

        }
    throw new Error('Request Failed!');
    } catch (error) {
        //console.log(error);
    }
}

getObs();

这是行不通的。有什么见解吗?

javascript async-await
1个回答
1
投票

这是访问此对象的正确方法:

...    
let obs = jsonData.STATION[0].OBSERVATIONS.snow_depth_value_1;
...

站是一个阵列。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.