如何从OpenWeatherMap API获取天气描述

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

我正在尝试从OpenWeatherMap API中获取法语的天气描述,但我被困住了。

我在做什么错了?

var urlBase = "http://api.openweathermap.org/data/2.5/weather?id=";
var apiKey = "&appid=xxx";
var unitsParam = "&units=metric";
var language = "&lang=fr";
var url = urlBase + cityCode + unitsParam + language + apiKey ;

startWebRequest (url, function(status, type, content) {
  var data = JSON.parse(content);
  console.log(data);
  setScreen('screen2');
  setText("label1",data.name);        
  setText('label2',data.main.temp);
  setText('label3',data.main.feels_like);
  setText('label4',data.weather.description[0]);

我收到undefined错误,我被卡住了。

TypeError:data.weather.description未定义。

请您查看我的代码并为我提供帮助吗?

javascript rest api openweathermap
2个回答
0
投票

根据返回的对象,您应该这样访问描述:data.weather[0].description


0
投票

根据API文档,descriptionstring,而不是array。而且您的天气关键是array

因此,要按预期正确访问description,您需要执行以下操作:

data.weather[0].description

不是:

data.weather.description[0]

但是请注意,如果weather数组为空,您可能会遇到问题。

执行以上我建议的操作将解决您遇到的TypeError

[如果setText值为undefined时遇到问题。只需使用一个空字符串作为备用。

喜欢这个:

setText('label4', data.weather[0] ? data.weather[0].description : '')
© www.soinside.com 2019 - 2024. All rights reserved.