【问题标题】:How to get rid of brackets in a JSON array?如何摆脱 JSON 数组中的括号?
【发布时间】:2018-10-10 10:14:06
【问题描述】:

所以我对 Node.js 非常陌生,我想做的是使用 OpenWeatherMap 收集天气数据,然后将它们打印到控制台......但是我遇到了一个奇怪的问题,我尽管研究了数小时,但还是无法解决

所以,从 JSON 中读取天气数据很简单,除了一组项目,这里有一张图片: Console

如您所见,它在温度正常时读取“未定义 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,所以请不要对我太技术化,如果可能的话,尽量为新手解释得通俗易懂,谢谢你的理解

【问题讨论】:

    标签: node.js json openweathermap


    【解决方案1】:

    天气是一个数组,因此您应该像从数组中获取数据一样检索数据,而不是“删除括号”(您可以这样做)。

    您要求天气数组中的maintemp 部分,但您需要数组中第一个元素中的这些部分。参见例如https://www.w3schools.com/js/js_json_arrays.asp

    【讨论】:

    • 另外,由于数据在一个数组中,你应该假设未来的某些数据集可能有多个天气对象,并适当地处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多