JSON的key值爲數字時如何使用

   JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON採用徹底獨立於語言的文本格式,可是也使用了相似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成爲理想的數據交換語言。 
        

        比較標準的寫法: 數據庫

Javascript代碼   收藏代碼
  1. var json = '{"a":"1", "b":"2"}';    
  2. var data = eval('('+ json +')');    
  3. alert(data.a);    
  4. alert(data['a']);    


       這樣兩種方式均可以取到json中的值。 

        可是當key的值爲數字時,只能使用相似數組下表的訪問方式取值。 json

Javascript代碼   收藏代碼
  1. var json = '{"0":"a", "1":"b", "length":2}';    
  2. var data = eval('(' + json + ')');    
  3. //alert(data.0);    //報錯,此方式不可用    
  4. alert(data['0']);    
  5. alert(data[0]);    //注意此寫法與數組用下標訪問是相同的    
  6. alert(data.length)  //貌似數組的長度   



        1.使用json時,一般都使用第一種方式,且key通常應使用合法的變量名(字母或下劃線開頭的包括字母、下劃線和數字的字符串) 

        2.對象的兩種訪問方式:data.key和data[’key’]各自有本身的應用場景,通常狀況使用data.key便可,也比較直觀(它符合其它高級語言中訪問對象中屬性的方式); 

        當key爲一個變量時,而且使用在循環中,用data['key']這種方式。 數組

Javascript代碼   收藏代碼
  1. for(var i=0; i < 10; i++) {    
  2.   s += data['key' + i];  //循環調用,可簡化代碼    
  3. }  


        3.第三種採用數字作key的方式,雖然不推薦,但也是有其應用價值的; 

        如當創建一個與數據庫中id一一對應的map對象的時候, 

        可直接用id的數值作key,雖然你能夠給它加上一個字母前綴來讓它符合合法的變量名的標準, 

        並讓它的數據能經過data.key的方式訪問, 

        但若是數據量很是大的話, 

        爲每一個id都加一個前綴,+字符鏈接運算也是要消耗性能的, 

        特別是在不多須要採用data.key方式去訪問屬性的狀況下, 

        那麼能夠拋棄此調用方式,直接用數字作key也何嘗不可, 

        除了key名稱不符合合法變量名的標準以外,彷佛並無其它損失; 性能

相關文章
相關標籤/搜索