[英]Accessing json elements gives undefined error
我有以下JSON:
{
"list": {
"q": "raw",
"sr": "28",
"ds": "Standard Reference",
"start": 0,
"end": 1,
"total": 1391,
"group": "",
"sort": "n",
"item": [
{
"offset": 0,
"group": "Poultry Products",
"name": "Chicken, broilers or fryers, dark meat, thigh, meat only, raw",
"ndbno": "05096",
"ds": "SR"
}
]
}
}
但是,當我嘗試訪問此json中的元素時,我一直收到未定義的錯誤...我已經檢查了JSON是否有效,是的,json是有效的! 也許我對JSON的訪問錯誤? JSON存儲在一個名為result的變量中。 到目前為止,這是我嘗試過的方法:
console.log(result.list.ds);
我也嘗試過:
console.log(result["0"].list.ds);
但是兩種解決方案都給我以下錯誤:
未捕獲的TypeError:無法讀取未定義的屬性“ ds”
為什么會這樣呢? 歡迎任何提示或建議!
JSON是否以字符串形式存儲在變量中? 嘗試:
console.log(JSON.parse(result).list.ds)
我問的原因是文本Uncaught TypeError: Cannot read property 'ds' of undefined
告訴我,您的result
變量沒有list
屬性,如果您的JSON是對象,您的JSON顯然會,但如果沒有,它肯定不會您不小心忘記了解析JSON字符串。
您的JSON
有效,並且如果您正在訪問list
對象內的ds
屬性。 您的語法console.log(result.list.ds);
是正確的。
但是,如果嘗試訪問item
數組內的ds
屬性,則必須迭代該數組以獲取ds
屬性。
演示
var result = { "list": { "q": "raw", "sr": "28", "ds": "Standard Reference", "start": 0, "end": 1, "total": 1391, "group": "", "sort": "n", "item": [{ "offset": 0, "group": "Poultry Products", "name": "Chicken, broilers or fryers, dark meat, thigh, meat only, raw", "ndbno": "05096", "ds": "SR" }] } }; var res = result.list.item.map(function(elem) { return elem.ds; }) console.log(res);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.