JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。
比較標准的寫法:
- var json = '{"a":"1", "b":"2"}';
- var data = eval('('+ json +')');
- alert(data.a);
- alert(data['a']);
這樣兩種方式都可以取到json中的值。
但是當key的值為數字時,只能使用類似數組下表的訪問方式取值。
- var json = '{"0":"a", "1":"b", "length":2}';
- var data = eval('(' + json + ')');
- //alert(data.0); //報錯,此方式不可用
- alert(data['0']);
- alert(data[0]); //注意此寫法與數組用下標訪問是相同的
- alert(data.length) //貌似數組的長度
1.使用json時,通常都使用第一種方式,且key一般應使用合法的變量名(字母或下划線開頭的包括字母、下划線和數字的字符串)
2.對象的兩種訪問方式:data.key和data[’key’]各自有自己的應用場景,一般情況使用data.key即可,也比較直觀(它符合其它高級語言中訪問對象中屬性的方式);
當key為一個變量時,並且使用在循環中,用data['key']這種方式。
- for(var i=0; i < 10; i++) {
- s += data['key' + i]; //循環調用,可簡化代碼
- }
3.第三種采用數字做key的方式,雖然不推薦,但也是有其應用價值的;
如當建立一個與數據庫中id一一對應的map對象的時候,
可直接用id的數值做key,雖然你可以給它加上一個字母前綴來讓它符合合法的變量名的標准,
並讓它的數據能通過data.key的方式訪問,
但如果數據量非常大的話,
為每個id都加一個前綴,+字符連接運算也是要消耗性能的,
特別是在很少需要采用data.key方式去訪問屬性的情況下,
那么可以拋棄此調用方式,直接用數字做key也未嘗不可,
除了key名稱不符合合法變量名的標准之外,似乎並沒有其它損失;