1.6 JSON存儲數據方式(JavaScript對象表示法)
JSON JavaScript 對象表示法(JavaScript Object Notation) 是一種存儲數據的方式。
一、創建JSON對象
var gareen = {"name":"蓋倫","hp":616};
這樣就創建了一個JSON 對象
JSON對象由 名稱/值對組成 名稱和值之間用冒號:隔開
名稱必須用雙引號" 包含起來
值可以是任意javascript數據類型,字符串,布爾,數字 ,數組甚至是對象
不同的名稱/值對之間用 逗號 , 隔開
<script> var gareen = {"name":"蓋倫","hp":616}; document.write("這是一個JSON對象: "+gareen); </script> //運行結果 這是一個JSON對象: [object Object]
1.2、訪問JSON節點
直接gareen.name訪問JSON對象的屬性
直接gareen.hp訪問JSON對象的屬性
二、通過方括號[] 創建JSON 數組
<script> //通過方括號[] 創建JSON 數組 var heros= [ {"name":"蓋倫","hp":616}, {"name":"提莫","hp":313}, {"name":"死歌","hp":432}, {"name":"火女","hp":389} ] //length個數 document.write("JSON數組大小"+heros.length); //訪問JSON數組和訪問普通數組一樣,通過下標訪問 document.write( "第4個英雄是:" + heros[3].name); </script>
三、JSON對象轉換問題
3.1JSON對象與JavaScript對象
JavaScript對象 分內置對象(Number,String,Array,Date,Math)和自定義對象
JSON就是自定義對象,只不過是以JSON這樣的數據組織方式表達出來
所以不存在JSON對象與JavaScript對象的轉換問題
3.2字符串轉為JSON對象
通過字符串拼接得到一個JSON結構的字符串,並不是一個JSON對象。 需要通過eval轉換得到
轉換的時候注意,eval 函數要以( 開頭,)結尾
或者使用JQuery的$.parseJSON轉換函數
<script src="http://how2j.cn/study/jquery.min.js"></script> <script> var s1 = "{\"name\":\"蓋倫\""; var s2 = ",\"hp\":616}"; var s3 = s1+s2; document.write("這是一個JSON格式的字符串:" + s3); document.write("<br>"); //1.使用JQuery的$.parseJSON轉換函數 var gareen1 = $.parseJSON(s3); document.write("這是一個JSON對象: " + gareen1); document.write("<br>"); //2.使用eval方法 var gareen2 = eval("("+s3+")"); document.write("這是一個JSON對象: " + gareen2); </script>
3.3 JSON轉換為字符串
json 對象因為是一個javascript對象,所以如果直接打印的話,看不到里面的內容。需要通過 JSON.stringify 函數把它轉換為 字符串
<script> var hero = {"name":"蓋倫","hp":"616"}; document.write("這是一個json 對象:"+ hero); document.write("<br>"); var heroString = JSON.stringify(hero) document.write("這是一個json 字符串:"+ heroString ); </script>
四、實際開發中的使用