无法访问API数据中的标记。

时间:2017-11-06 05:23:17

标签: javascript node.js

我已成功访问请求中的数据到API。

我已将数据设置为var weatherData

如果我打印出weatherData,我会在这里得到这整个blob。

  

{" COORD" {" LON": - 79.42," LAT":43.7}"天气":[{& #34; ID" 701"主":"雾""描述":"雾""图标":" 50N"},{" ID" 500"主":"雨""描述& #34;:"光   雨""图标":" 10N"}],"基础":"站""主&#34 ;:{"温度":286.46"压力":1006,"湿度":100," temp_min":285.15&#34 ; temp_max":288.15},"能见度":1207,"风" {"速度":3.1"度&#34 ;: 240}"云" {"所有":90}&#34峰; dt":1509943080," SYS" {"类型":1," ID":3721,"消息":0.1665,"国家":" CA"&#34 ;日出":1509969642,"日落":1510005682}" ID":6167865,的"名称":"多伦多&#34 ; 下,"鳕鱼":200}

这个城市是我感兴趣的。 我尝试使用weatherData.name访问它,但它返回为undefined。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

只需添加一点,如果您无法弄清楚返回结果是JSON还是字符串,这将始终是一个很好的代码片段(实际上我将它包含在我的所有项目中)

它会尝试解析为JSON,如果失败,它将返回undefined

function tryJSON(x) {
    try {
        x = JSON.parse(x);
    } catch (e) {}

    if ((!!x) && (x.constructor === Object)) {
        return x;
    }
}

console.log(tryJSON('{ "apple": 10 }'));
console.log(tryJSON("{ :notJSON }"));
console.log(tryJSON({ orange: 5 }));