2012年4月24日 星期二

使用JSON來當網頁的Database

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的差異居然只有在於變數的宣告與否,瀏覽器認識的語言只有三種──
  1. HTML
  2. CSS
  3. javascript


使用JSON來當作網站上面不變文字的Data非常適合,因為用javascript來指定JSON的文字該塞在HTML的某個tag中甚至連parsing(剖析)都省了,與此同時,各種語言都有推出關於他們自己的JSON parsing API,JSON已經是非常方便的資料交換格式了(特別是對於web技術上),你甚至可以用JSON來當作一個網頁中所有標題的database,然後再另外寫一個JSON檔當作控制哪些標題或內容該出現或不放上來的config檔,而令整個網頁的架構變成很有彈性的配置,因為並沒有把文字寫死在tag裡頭,所以哪天心血來潮想把網頁外表全換了也不用很辛苦地去重刻HTML檔中的文字 : )

April 24th, 2012
shesee@Taipei

沒有留言:

張貼留言