繁体   English   中英

如何从 OpenWeatherMap API 获取天气描述

[英]How to get the weather description from OpenWeatherMap API

我正在尝试从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的错误,我被卡住了。

类型错误:data.weather.description 未定义。

你能看看我的代码并帮助我吗?

根据 API 文档, description是一个string ,而不是一个array 而且你的天气键是一个array

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

data.weather[0].description

不是:

data.weather.description[0]

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

执行我上面推荐的操作将解决您遇到的TypeError

如果您在setText值为undefined时遇到问题。 只需使用空字符串作为后备。

像这样:

setText('label4', data.weather[0] ? data.weather[0].description : '')

根据返回的 object 您应该以这种方式访问描述: data.weather[0].description

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM