簡體   English   中英

訪問JSON對象屬性

[英]Accessing JSON Object property

這些是我的JSON對象。

({
"0":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F86040788&amp",
"1":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F87126537&amp",
"2":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F84915833&amp",
"3":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F87317484&amp",
"4":"http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F86548283&amp"
})

我用Ajax獲取它們,這就是我對它們的看法:

data[0]data[4]

為什么data.1等不起作用? 我不明白為什么我可以訪問像這個data[0]這樣的對象,因為它們不是數組。

為什么data.1等不起作用?

那是因為根據Javascript的語法, data.1是無效的語法。 打開瀏覽器控制台並嘗試:

var obj = {};
obj[0] = "test";
obj.0; //SyntaxError: Unexpected number

我不明白為什么我可以訪問像這個數據[0]這樣的對象,因為它們不是數組。

在javascript中,數組和map / dictionary / association數組是一回事。 您可以通過object[key]語法或object.key語法進行訪問。 唯一的限制是它應該由解析器解析(它應該是一個標識符),否則它會失敗 - 就像你擁有的情況一樣。 另一個例子:

var obj = {"test-data":1, "test": 2};
obj["test"]           // 2
obj.test              // 2
obj["test-data"];     // 1
obj.test-data         //ReferenceError: data is not defined
      //^ is a <MINUS> character, parsed as (obj.test - data)

使用對象:對象和屬性

對象屬性名稱可以是任何有效的JavaScript字符串,也可以是可以轉換為字符串的任何內容,包括空字符串。 但是,任何不是有效JavaScript標識符的屬性名稱(例如,具有空格或破折號的屬性名稱,或以數字開頭)只能使用方括號表示法訪問。 當要動態確定屬性名稱時(直到運行時才確定屬性名稱),此表示法也非常有用。 示例如下:

因為json var name無法從數字開始

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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