1. 何為 JSON
JSON( JavaScript Object Notation ),即 JavaScript 對象表示法。JSON 主要用于存儲和交換文本信息,類似于XML。但是和 XML 相比,JSON 是更加輕量級的文本數(shù)據(jù)交換格式,具有更小、更快、更易解析的特點。JSON 具有自我描述性,更易理解。雖然 JSON 使用 JavaScript 語法來描述數(shù)據(jù)對象,但是,JSON 是獨立于語言和平臺的。JSON 解析器和 JSON 庫支持許多不同的編程語言。
2. JSON 基本語法
JSON 語法是 JavaScript 對象表示法語法的子集。具體內(nèi)容如下:
- 數(shù)據(jù)在key/value對中存儲
- 數(shù)據(jù)由逗號分隔
- 花括號保存對象
- 方括號保存數(shù)據(jù)
3. JSON值的類型
JSON的數(shù)據(jù)都在key/value對中存儲,其中,這個值,可選類型如下:
數(shù)字(整數(shù)或浮點數(shù)),例如:
{ "number":12.34 }字符串(在雙引號中),例如:
{ "name":"qiumengchen" }邏輯值(true 或 false),例如:
{ "isOpen":true }數(shù)組(在中括號中),例如:
{ "array":[1.2 , "3" , true , [4,5] , {"test":"ok"} , null] }對象(在大括號中),例如:
{ "person":{"name":"qiumengchen","isHandsome":true} }null,例如:
{ "blog":null }
總體來說,JSON的完整表現(xiàn)形式有兩種:
-
JSON對象:以大括號(
{})為標(biāo)志,對象可以包含多個key/value對,注意:對象中的每一項都必須是key/value對,不能是其他形式。但是,其中的key必須是字符串,其中的value可以是合法的JSON數(shù)據(jù)類型包括:數(shù)字、字符串、邏輯值、數(shù)組、對象、null等。例如:
{ "name":"qiumengchen" , "isHandsome":true , "blog":{"url":"qiumengchen.top","name":"myBlog"} }
-
JSON數(shù)組:以中括號(
[])為標(biāo)志,數(shù)組可以包含多個value,value可以是合法的JSON數(shù)據(jù)類型包括:數(shù)字、字符串、邏輯值、數(shù)組、對象、null等。但是,一般來說,我們會保持?jǐn)?shù)據(jù)中每個項的形式和意義的一致性,方便理解和運用。例如:
[ 99 , "qiumengchen" , true , [1,2,3] , {"name":"qiumengchen"} , null ]
4. 與XML比較
與XML相同之處
- JSON 是純文本
- JSON 具有"自我描述性"(人類可讀)
- JSON 具有層級結(jié)構(gòu)(值中存在值)
- JSON 可通過 JavaScript 進(jìn)行解析
- JSON 數(shù)據(jù)可使用 AJAX 進(jìn)行傳輸
與XML不同之處
- 沒有結(jié)束標(biāo)簽
- 更短
- 讀寫的速度更快
- 能夠使用內(nèi)建的 JavaScript eval() 方法進(jìn)行解析
- 使用數(shù)組
- 不使用保留字
5. 輔助工具
- JSON在線解析工具(功能包括:JSON格式化、壓縮、驗證格式、JSON轉(zhuǎn)XML、CSV、YAML),地址如下:https://c.runoob.com/front-end/53
- Chrome瀏覽器插件:JSON-handle