JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。其屬性值的獲取有三種方法
1. 對象名.屬性名, 類似於高級語言的寫法
1
2
3
|
var
obj =
'{"name":"wisdo", "age":"20"}'
;
var
data = eval(
'('
+ obj +
')'
);
alert(obj.name);
|
2. 以數組索引的方式來訪問
1
2
3
|
var
obj =
'{"name":"wisdo", "age":"20"}'
;
var
data = eval(
'('
+ obj +
')'
);
alert(obj[0]);
// 輸出的是 name
|
3. 以字典索引的方式來訪問
1
2
3
|
var
obj =
'{"name":"wisdo", "age":"20"}'
;
var
data = eval(
'('
+ obj +
')'
);
alert(obj[
'name'
]);
// 輸出的是 name 值
|
在通常的情況下,一般是使用第一種方法,即通過對象名.屬性名 的方式來訪問,這樣對於使用高級語言的編程很直觀,也很容易理解,但這也有局限性,屬性的名稱要規范,key 要以字母或下划線開頭的包括字母、下划線和數字的字符串,不能以數字開頭.
總結
data.key和data[’key’]各自有自己的應用場景,一般情況使用data.key即可,也比較直觀(它符合其它高級語言中訪問對象中屬性的方式);當key為一個變量時,並且使用在循環中,用data['key']這種方式。
1
2
|
for
(
var
i=0; i < 10; i++) {
s += data[
'key'
+ i];
//循環調用,可簡化代碼}
|
以數組索引的方式來訪問,雖然不推薦,但也是有其應用價值的;如當建立一個與數據庫中id一一對應的map對象的時候,可直接用id的數值做key,雖然你可以給它加上一個字母前綴來讓它符合合法的變量名的標准並讓它的數據能通過data.key的方式訪問.