所以我是Node.js的新手,我想做的是使用OpenWeatherMap收集天气数据,然后将它们打印到控制台上...但是我遇到了一个奇怪的问题,我尽管进行了数小时的研究,还是无法解决
因此,从JSON读取天气数据非常简单,除了一组项目外,这是一张图片: Console
如您所见,当温度升高时,它会读取“ undefined 12.5”,尽管它的实际描述是不确定的,即使它在那里,看看OpenWeatherMap编写的JSON文件,有一些奇怪的地方
{
"coord": {
"lon": -1.61,
"lat": 54.98
},
"weather": [
{
"id": 876,
"main": "Haze",
"description": "haze",
"icon": "50d"
}
],
"base": "stations",
"main": {
"temp": 12.2,
"pressure": 1014,
"humidity": 71,
"temp_min": 11,
"temp_max": 14
}
如您所见,由于某些原因,天气项目带有括号,手动将其删除可以解决问题,并且可以很好地阅读,但是,我如何解决此问题,使它们不在第一位呢?我究竟做错了什么?如果您能想到解决此问题的任何方法
这就是我收集数据并使用它们的方式:
fs.writeFile('uk.json', JSON.stringify(currentWeather, null, 2), (error) => {
if (error) throw err;
console.log('Weather data written');
var uk = require('./uk.json');
console.log(uk.weather.main + ' ' + uk.main.temp);
})
我是Node.js的新手,我唯一的编程经验是Visual Basic,所以请不要对我有太多的了解,如果可能,请尝试为新手很好地解释它并易于理解,谢谢您的理解
答案 0 :(得分:0)
天气是一个数组,因此应该像从数组中获取数据一样来检索数据,而不是“移开括号”。
您要在天气数组中请求main
和temp
部分,但是您希望从数组的第一个元素中获取这些部分。参见例如https://www.w3schools.com/js/js_json_arrays.asp