現(xiàn)在, JSON 為 Web 應(yīng)用開(kāi)發(fā)者提供了另一種數(shù)據(jù)交換格式。讓我們來(lái)看看 JSON 到底是什么,同 XML 或 HTML 片段相比,JSON 提供了更好的簡(jiǎn)單性和靈活性。
JSON 數(shù)據(jù)格式解析
和 XML 一樣,JSON 也是基于純文本的數(shù)據(jù)格式。由于 JSON 天生是為 JavaScript 準(zhǔn)備的,因此,JSON 的數(shù)據(jù)格式非常簡(jiǎn)單,您可以用 JSON 傳輸一個(gè)簡(jiǎn)單的 String,Number,Boolean,也可以傳輸一個(gè)數(shù)組,或者一個(gè)復(fù)雜的 Object 對(duì)象。
String,Number 和 Boolean 用 JSON 表示非常簡(jiǎn)單。例如,用 JSON 表示一個(gè)簡(jiǎn)單的 String “ abc ”,其格式為:
"abc"
除了字符 ",,/ 和一些控制符(b,f,n,r,t)需要編碼外,其他 Unicode 字符可以直接輸出。下圖是一個(gè) String 的完整表示結(jié)構(gòu):
圖 1. String 的完整表示結(jié)構(gòu)
一個(gè) Number 可以根據(jù)整型或浮點(diǎn)數(shù)表示如下:
這與絕大多數(shù)編程語(yǔ)言的表示方法一致,例如:
12345(整數(shù))
-3.9e10(浮點(diǎn)數(shù))
Boolean 類(lèi)型表示為 true 或 false 。此外,JavaScript 中的 null 被表示為 null,注意,true、false 和 null 都沒(méi)有雙引號(hào),否則將被視為一個(gè) String 。
JSON 還可以表示一個(gè)數(shù)組對(duì)象,使用 [] 包含所有元素,每個(gè)元素用逗號(hào)分隔,元素可以是任意的 Value,例如,以下數(shù)組包含了一個(gè) String,Number,Boolean 和一個(gè) null:
["abc",12345,false,null]
Object 對(duì)象在 JSON 中是用 {} 包含一系列無(wú)序的 Key-Value 鍵值對(duì)表示的,實(shí)際上此處的 Object 相當(dāng)于 Java 中的 Map<String, Object>,而不是 Java 的 Class 。注意 Key 只能用 String 表示。
例如,一個(gè) Address 對(duì)象包含如下 Key-Value:
city:Beijing
street:Chaoyang Road
postcode:100025(整數(shù))
用 JSON 表示如下:
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
其中 Value 也可以是另一個(gè) Object 或者數(shù)組,因此,復(fù)雜的 Object 可以嵌套表示,例如,一個(gè) Person 對(duì)象包含 name 和 address 對(duì)象,可以表示如下:
{"name":"Michael","address":
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
聯(lián)系客服