天天看點

JSON的操作與使用

json也就是javascript object notation,是一個描述資料的輕量級文法。json的優雅是因為它是javascript語言的一個子集。json和xml都使用結構化方法描述資料

json有結構化的嵌套資料元素,每個json文檔描述了這樣一個對象,該對象包含有:嵌套對象、數組、字元串、數字、布爾值或空值。

第一種:

第二種:

第三種:對象字面量表達式

1,shift()方法

shift:删除原數組第一項,并傳回删除元素的值;如果數組為空則傳回undefined

2,pop()方法

pop:删除原數組最後一項,并傳回删除元素的值;如果數組為空則傳回undefined

前面的方法隻能操作數組開頭和結尾,無法操作中間項,如果要操作中間的項,使用splice方法

3,splice方法

這個方法很強大,可以對數組任意項進行增加,删除,替換操作

1)修改操作:

第一個參數是準備操作的數組位置,第二個參數是操作位置後面的數組項數,第三個以後的就是被替換後的内容

2)删除操作:

3)添加操作:

js中删除對象元素用delete操作符

json資料如:

object本身就是無對象的集合,是以在用 for-in 語句周遊對象的屬性時,周遊出的屬性順序與對象定義時不同,是以在開發中應盡量避免編寫依賴對象屬性順序的代碼

正常情況下上面兩種周遊數組的方式結果一樣

差別:

1.标準的for循環中的i是number類型,表示的是數組的下标,但是forin循環中的i表示的是數組的key是string類型,因為js中一切皆為對象。自己試試 alert(typeof i)

2.現在我加上如下代碼,上面的執行結果就不一樣了

我們發現标準的for循環依然真正的對數組循環, 但是此時forin循環對我剛才寫的test方法列印出來了。這就是for與forin周遊數組的最大差別,如果我們在項目采用的是用forin周遊數組,假設有一天誰不小心自己為了擴充js原生的array類,或者引入一個外部的js架構也擴充了原生array。那問題就來了

再此建議兩點

1.不要用for in周遊數組,全部統一采用标準的for循環變量數組(我們無法保證我們引入的js是否會采用prototype擴充原生的array)

2.如果要對js的原生類擴充的時候,不要采用prototype了

直接在js裡建立json資料

json對象沒有length屬性,是以周遊的話要:

記住一定要分辨好json的對象和數組~不然就一直是undenfined

js不能直接周遊map,但是可以周遊json對象,是以先将map轉為json資料,再由js去解析周遊json對象,就達到了間接周遊map的目的

繼續閱讀