JSON(一):基本文法,json基本文法
JSON 即 JavaScriptObject Natation,它是一種輕量級的資料交換格式,非常適合於伺服器與 JavaScript 的互動。JSON 也是基於純文字的資料格式。由於JSON 天生是為 JavaScript 準備的,因此,JSON 的資料格式非常簡單,您可以用 JSON 傳輸一個簡單的String,Number,Boolean,也可以傳輸一個數組,或者一個複雜的 Object 對象。
接下來就從幾方面來初步瞭解一下JSON。
類似 XML
- JSON 是純文字
- JSON 具有“自我描述性”(人類可讀)
- JSON 具有層級結構(值中存在值)
- JSON 可通過 JavaScript 進行解析
- JSON 資料可使用 AJAX 進行傳輸
相比 XML 的不同之處
- 沒有結束標籤
- 更短
- 讀寫的速度更快
- 能夠使用內建的 JavaScript eval() 方法進行解析
- 使用數組
- 不使用保留字
為什麼使用 JSON?
對於 AJAX 應用程式來說,JSON比XML 更快更易使用:
使用 JSON
- 讀取 JSON 字串
- 用 eval() 處理 JSON 字串
基本瞭解了JSON,接下來我們就再瞭解一下JSON是如何表示我們常見的資料類型:
JSON 文法規則
JSON文法是 JavaScript對象標記法文法的子集。
- 資料在名稱/值對中
- 資料由逗號分隔
- 花括弧儲存對象
- 方括弧儲存數組
JSON 名稱/值對
JSON 資料的書寫格式是:名稱/值對。名稱/值對包括欄位名稱(在雙引號中),後面寫一個冒號,然後是值:
"firstName" : "John"這很容易理解,等價於這條JavaScript語句:firstName = "John"
JSON 值
JSON 值可以是:
一個Number 可以根據整型或浮點數表示如下:這與絕大多數程式設計語言的表示方法一致,例如:12345(整數)和-3.9e10(浮點數)。
用JSON 表示一個簡單的 String “ abc ”,其格式為:"abc"。除了字元 ",\,/ 和一些控制符(\b,\f,\n,\r,\t)需要編碼外,其他 Unicode字元可以直接輸出。
Boolean 類型表示為 true 或 false 。
JSON 還可以表示一個數組對象,使用 [] 包含所有元素,每個元素用逗號分隔,元素可以是任意的 Value,例如,以下數組包含了一個 String,Number,Boolean和一個 null:
["abc",12345,false,null]
Object 對象在 JSON 中是用 {} 包含一系列無序的 Key-Value 鍵值對錶示的,實際上此處的 Object相當於 Java中的 Map<String, Object>,而不是 Java的 Class。注意 Key只能用 String表示。
例如,一個Address 對象包含如下 Key-Value:city:Beijing street:Chaoyang Road postcode:100025(整數)
用JSON 表示如下:{"city":"Beijing","street":"Chaoyang Road ","postcode":100025}
其中Value 也可以是另一個 Object 或者數組,因此,複雜的 Object 可以巢狀表格示,例如,一個 Person 對象包含 name 和 address對象,可以表示如下:{"name":"Michael","address":
{"city":"Beijing","street":" ChaoyangRoad ","postcode":100025}
}
JavaScript中的 null 被表示為 null,注意,true、false 和 null 都沒有雙引號,否則將被視為一個 String。
JSON 對象
JSON 對象在花括弧中書寫:對象可以包含多個名稱/值對:{ "firstName":"John" ,"lastName":"Doe" }
這一點也容易理解,與這條JavaScript 語句等價:firstName = "John" lastName = "Doe"
JSON 數組
JSON 數組在方括弧中書寫:數組可包含多個對象:
{
"employees":
[
{ "firstName":"John" , "lastName":"Doe"},
{ "firstName":"Anna" ,"lastName":"Smith" },
{ "firstName":"Peter" ,"lastName":"Jones" }
]
}
在上面的例子中,對象"employees" 是包含三個對象的數組。每個對象代表一條關於某人(有姓和名)的記錄。
需要注意的是:因為 JSON 使用JavaScript文法,所以無需額外的軟體就能處理 JavaScript中的 JSON。通過JavaScript,您可以建立一個對象數組,並像這樣進行賦值:
var employees = [
{ "firstName":"Bill" ,"lastName":"Gates" },
{ "firstName":"George" ,"lastName":"Bush" },
{ "firstName":"Thomas" , "lastName":"Carter" }
];
可以像這樣訪問JavaScript 對象數組中的第一項:employees[0].lastName; 返回的內容是:Gates。也可以像這樣修改資料:employees[0].lastName = "Jobs";
現在大致瞭解了JSON的基本文法,接下來的博文會和大家一起學習如何在伺服器端產生 JSON格式的資料以便發送到用戶端,以及用戶端如何使用 JavaScript 處理 JSON 格式的資料。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。