我正在尝试从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未定义。
请您查看我的代码并为我提供帮助吗?
根据返回的对象,您应该这样访问描述:data.weather[0].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 : '')