无论我尝试什么,我都试图访问一些数据并不断收到错误。请帮忙。
"rain":{"3h":13.625}
是我尝试访问的JSON文件的一部分。
以下是我的尝试:
var currentRain = data.rain.3h;
这是最合乎逻辑的,因为它之前有效,但数字是给出错误的。
var currentRain = data.rain["3h"];
var currentRain = data.rain[0]["3h"];
var currentRain = data.rain["3h"][0];
更新
这是JSON有效负载:
{ "base" : "stations",
"clouds" : { "all" : 92 },
"cod" : 200,
"coord" : { "lat" : -33.850000000000001,
"lon" : 151.22
},
"dt" : 1429558616,
"id" : 6619279,
"main" : { "grnd_level" : 1024.97,
"humidity" : 100,
"pressure" : 1024.97,
"sea_level" : 1031.0999999999999,
"temp" : 288.77699999999999,
"temp_max" : 288.77699999999999,
"temp_min" : 288.77699999999999
},
"name" : "City of Sydney",
"rain" : { "3h" : 13.625 },
"sys" : { "country" : "AU",
"message" : 0.0101,
"sunrise" : 1429474880,
"sunset" : 1429514809
},
"weather" : [ { "description" : "heavy intensity rain",
"icon" : "10n",
"id" : 502,
"main" : "Rain"
} ],
"wind" : { "deg" : 157.5,
"speed" : 8.3200000000000003
}
}
答案 0 :(得分:4)
您需要使用["bracket notation"]
来访问此内容,因为"3h"
以数字开头。正如MDN所解释的那样:
对象属性名称可以是任何有效的JavaScript字符串,也可以是可以转换为字符串的任何内容,包括空字符串。但是,任何不是有效JavaScript标识符的属性名称(例如,具有空格或连字符的属性名称,或以数字开头的属性名称)只能使用方括号表示法访问。
答案 1 :(得分:0)
这是正确的JSON:
{
"rain": {
"3h": 13.625
}
}
首先,您需要解析它并转换为对象:
var jsonToObject = JSON.parse('{"rain":{"3h":13.625}}');
您现在可以像这样访问它:
jsonToObject.rain["3h"]
答案 2 :(得分:0)
只需使用data["rain"]
即可。如果您需要解析它,请先JSON.parse(data)
然后data["rain"]
。
<强>输出强>
console.log(data["rain"]);
> { '3h': 13.625 }
...请记住,它将返回一个Object。