Node.js 入門, #9:學習 JSON 格式
.作者:jollen/
.日期:July 23, 2014 9:35 PM
本文章採用 Markdown 語法撰寫(why?),若無法閱讀內文,請點擊這裡。
學習 JSON 格式
思考將要製作的 NoChat 聊天室範例,Server 要把收到的訊息,Push 給所有的 Client 端。Server 與 Client 所使用的標準資料交換格式,就是 JSON。如何把訊息打包成 JSON 格式?方式非常簡單。以表 2 為例,要將這個資料表,撰寫為 JSON 格式,只需要二個步驟:
Step 1:以 JavaScript 物件表示一筆資料
例如,第一筆個人資料,以 JavaScript 物件來表示的話,只要用 var 來宣告此物件即可:
var obj = {
"name": "Jollen",
"score": 80
};
大括號是 JavaScript 表示物件的語法。上述範例,我們宣告了 obj 物件。
Step 2:轉換成標準 JSON 語法
去掉等號,以及等號左邊的物件宣告,結果如下:
{
"name": "Jollen",
"score": 80
}
請注意,結尾的分號也要一併去除。上述的表示方法,就是標準的 JSON 語法。這個例子用 JSON 來表示一筆個人資料。JSON 表示方法非常地簡單,只要會 JavaScript 保證 1 分鐘即可上手,不需要特意學習。
Step 3:用陣列表示多個物件
| "name" 欄位 | "score" 欄位 | 說明 |
|---|---|---|
| "Jollen" | 80 | 第 1 筆使用者資料 |
| "Paul" | 170 | 第 2 筆使用者資料 |
| "Peter" | 250 | 第 3 筆使用者資料 |
| "Ellaine" | 580 | 第 4 筆使用者資料 |
表 2 資料表
表 2 共有 4 筆個人資料,因此需要撰寫 4 個物件,每個物件之間用逗號隔開。試想,過去撰寫程式的經驗裡,我們用哪一個資料結構(Data Structure)來表示多筆型別(Data Type)相同的資料呢?答案是:陣列(Array)。
JavaScript 的陣列用中括號來宣告,例如:
var string = ['Jollen', 'Paul', 'Peter'];
這個例子宣告 string 陣列,裡頭有 3 個字串。用 JavaScript 怎麼表示 4 個物件的陣列呢?答案如下:
var persons = [
{
"name": "Jollen",
"score": 80
},
{
"name": "Paul",
"score": 170
},
{
"name": "Peter",
"score": 250
},
{
"name": "Ellaine",
"score": 580
}
];
我們只要把上述的 4 個物件,用陣列「群組」起來即可。和 Step 2 相同,保留以下的寫法即可:
[
{
"name": "Jollen",
"score": 80
},
{
"name": "Paul",
"score": 170
},
{
"name": "Peter",
"score": 250
},
{
"name": "Ellaine",
"score": 580
}
]
這就是表 2 的 JSON 表示方式了。將上述的 JSON 儲存為純文字,這個純文字檔就叫做 JSON Document,這就是 JSON Document 資料庫的概念。
同理,NoChat Server 收到訊息後,只要把訊息表示成 JSON 後,傳送給 Client 端即可。JSON 相當簡單易學,更是優秀的輕量級資料交換格式。
Tags: