JSON
(JavaScript Object Notation) 是一種輕量級的資料交換語言,以文字為基礎,且易於讓人閱讀。儘管JSON是在Javascript的一個子集,但JSON是獨立於語言的文本格式,並且採用了類似於C語言家族的一些習慣。
更白話一點的說,JSON其實就是把jacvascript的「物件」拿掉它的變數,只剩下等號後面那一串,就當做一種文字格式了...例如說,下面就是一個典型的javascript物件:
var student = { "name": "Carol", "score": "88", "gender": "female" };
這裡代表,我宣告了一個student物件,學生姓名叫做Carol,分數88分,性別是女性。然後如果我要把這個檔案轉成JSON格式的文字檔,真的很簡單,就是把等號左邊(var student =)那一串拿掉就OK了。
{ "name": "Carol", "score": "88", "gender": "female" }
如果想給這個物件命名,也可以這麼做:
"student":{ "name": "Carol", "score": "88", "gender": "female" }
當然,JSON格式也支援陣列,假如說javascript的物件長成這樣
var students = [student1, student2, student3,... ,studentn];
JSON就可以長成這樣
[student1, student2, student3,... ,studentn];
或是我們直接把物件包在裡面:
[{ "name": "Carol", "score": "88", "gender": "female" }, { "name": "David", "score": "99", "gender": "male" }, { "name": "Jason", "score": "100", "gender": "male" }]
關於JSON的寫法就這樣介紹完了。
等等,那今天的主題呢?這個JSON為什麼要拿來用?它又和Database扯上什麼關係?
前面已經摘錄過wiki的解釋了,「輕量級的資料交換語言」。假設說我今天要把Excel的內容轉出然後貼到我的網站上,很可能會使用Excel中的另存新檔將資料轉存為XML的階層關係,然後看我的需求和平台來做轉換,因為眾所周知XML有階層架構,可以成樹狀結構,或是有規律的將每一層中的資料指定放在某個地方,以你想要的方式做轉換。
JSON的好處在於Web的應用上它比XML更方便很多很多,上面的例子中我們可以看到JSON文字檔和javascript的差異居然只有在於變數的宣告與否,瀏覽器認識的語言只有三種──
- HTML
- CSS
- javascript
使用JSON來當作網站上面不變文字的Data非常適合,因為用javascript來指定JSON的文字該塞在HTML的某個tag中甚至連parsing(剖析)都省了,與此同時,各種語言都有推出關於他們自己的JSON parsing API,JSON已經是非常方便的資料交換格式了(特別是對於web技術上),你甚至可以用JSON來當作一個網頁中所有標題的database,然後再另外寫一個JSON檔當作控制哪些標題或內容該出現或不放上來的config檔,而令整個網頁的架構變成很有彈性的配置,因為並沒有把文字寫死在tag裡頭,所以哪天心血來潮想把網頁外表全換了也不用很辛苦地去重刻HTML檔中的文字 : )
April 24th, 2012
shesee@Taipei
沒有留言:
張貼留言