我有一個(可能)愚蠢的問題,但我不能錯過什麼是...
我請求一個AWS API網關URL,我有一個json格式的響應,我解析它,但是當我想要獲取特定JSON元素的值時,我會得到「undefined」而不是元素的值。JSON解析問題與Javascript
這裏是我的代碼:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
jsonData = JSON.parse(xhr.responseText);
data = jsonData.coord;
document.write(data);
}
}
xhr.open('GET', "https://[mon-url]", true);
xhr.send();
的API響應使用
jsonData = JSON.parse(xhr.responseText)
document.write(jsonData)
給下面的輸出解析:
{
"coord": {
"lon": 2.35,
"lat": 48.85
},
"weather": [
{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01n"
}
],
"base": "stations",
"main": {
"temp": 291.97,
"pressure": 1019,
"humidity": 56,
"temp_min": 288.15,
"temp_max": 295.15
},
"visibility": 10000,
"wind": {
"speed": 3.1,
"deg": 60
},
"clouds": {
"all": 0
},
"dt": 1495747800,
"sys": {
"type": 1,
"id": 5615,
"message": 0.0022,
"country": "FR",
"sunrise": 1495684591,
"sunset": 1495741168
},
"id": 2988507,
"name": "Paris",
"cod": 200
}
但是,如果我試圖得到一個特定的元素值,例如使用document.write(jsonData.coord)
我得到"undefined"
作爲值。
有人能幫我理解爲什麼我無法正確解析我的JSON數據嗎?
謝謝!
你還可以記錄'jsonData'的類型嗎? 'console.log(typeof(jsonData))' – Rajesh
@prasad,如果數據OP添加的格式正確,不應該有任何區別 –
使用'jsonData = JSON.parse(JSON.stringify(xhr.responseText))' – farhadamjady