有首歌這麼唱:JSON JSON 滿天下 越傳它越強大~
就程式設計的角度來看其實XML比較好,可以直接使用洞操作(DOM)
但是要比速度就弱了,誰叫JSON是 輕量級的資料交換語言
雖然WIKI這麼叫他其實他骨子裡就只是個字串,讓後放些 { [ : , 隔開而已
JSON怎麼寫?我們來看看官方的說法
http://www.json.org/
很好資質駑鈍的我完全不知道他媽的在說什麼
直接看範例對照立馬就懂
還是不懂的話,就去立馬廄吧-.-
{[值],[值],[值]} 或 {"索引":[值],"索引":[值],"索引":[值]}
這是一個物件裡面很多陣列,偵錯起來看起來像這樣
[{"名稱":"值"},{"名稱":"值"},{"名稱":"值"}]
這是一個陣列裡面很多物件,偵錯起來看起來像這樣
{}包起來的是物件,[]包起來的是陣列
{}裡面必須要有 名稱:值
[]裡面只能有 值
可以為值的項目有字串、數字、物件、陣列、布林、NULL
雖然規則不嚴格,但是如果沒遵守$.parseJSON()就會報錯
容易出錯的地方:
物件裡面只有值 ex: [{"イヴ"},{"ギャリー"},{"メアリー"}]
不能給物件索引值/名稱 ex: ["Ib":{"イヴ"},"Garry":{"ギャリー"},"Mary":{"メアリー"}]
索引裡面寫成名稱:值 ex: {["Ib":"イヴ"],["Garry":"ギャリー"],["Mary":"メアリー"]}
JSON 骨子裡就是 Javascript 裡面的 陣列 跟 物件 這兩種東東改成字串的寫法
陣列只有數字索引值
personObjArray_JsonObj[0].enus == Ib
所以要由某個值取得項目必須要走訪全部的項目
除非有辦法事先得知索引數
物件的則是屬性,屬性可以命名
personObj.Ib.enus == Ib
personObj["Garry"] == Ib
※我用"項目"這個名詞來表示一組有獨立意義的數值組合,因為陣列跟物件都能達成,JSON的核心價值在於把每個項目分隔開來,以便走訪取值
兩派用法都能達成目的,因為Javascript的陣列跟物件都可以被for走訪,但是他們有著微妙的區別
但是個人偏好使用物件
因為我只需要知道名稱,我可以直接從Json 物件裡面 取得底下值
而不必用each走訪整個Json再取出值