簡體   English   中英

訪問json元素會產生未定義的錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM