1. 何為 JSON
JSON( JavaScript Object Notation )槽华,即 JavaScript 對象表示法津函。JSON 主要用于存儲和交換文本信息漫贞,類似于XML。但是和 XML 相比糯而,JSON 是更加輕量級的文本數據交換格式峭状,具有更小克滴、更快、更易解析的特點优床。JSON 具有自我描述性劝赔,更易理解。雖然 JSON 使用 JavaScript 語法來描述數據對象胆敞,但是着帽,JSON 是獨立于語言和平臺的。JSON 解析器和 JSON 庫支持許多不同的編程語言移层。
2. JSON 基本語法
JSON 語法是 JavaScript 對象表示法語法的子集仍翰。具體內容如下:
- 數據在key/value對中存儲
- 數據由逗號分隔
- 花括號保存對象
- 方括號保存數據
3. JSON值的類型
JSON的數據都在key/value對中存儲,其中观话,這個值予借,可選類型如下:
數字(整數或浮點數),例如:
{ "number":12.34 }
字符串(在雙引號中),例如:
{ "name":"qiumengchen" }
邏輯值(true 或 false)蕾羊,例如:
{ "isOpen":true }
數組(在中括號中)喧笔,例如:
{ "array":[1.2 , "3" , true , [4,5] , {"test":"ok"} , null] }
對象(在大括號中)帽驯,例如:
{ "person":{"name":"qiumengchen","isHandsome":true} }
null龟再,例如:
{ "blog":null }
總體來說,JSON的完整表現(xiàn)形式有兩種:
-
JSON對象:以大括號(
{}
)為標志尼变,對象可以包含多個key/value對利凑,注意:對象中的每一項都必須是key/value對,不能是其他形式嫌术。但是哀澈,其中的key必須是字符串,其中的value可以是合法的JSON數據類型包括:數字度气、字符串割按、邏輯值、數組磷籍、對象适荣、null等。例如:
{ "name":"qiumengchen" , "isHandsome":true , "blog":{"url":"qiumengchen.top","name":"myBlog"} }
-
JSON數組:以中括號(
[]
)為標志院领,數組可以包含多個value弛矛,value可以是合法的JSON數據類型包括:數字、字符串比然、邏輯值丈氓、數組、對象强法、null等万俗。但是,一般來說饮怯,我們會保持數據中每個項的形式和意義的一致性闰歪,方便理解和運用。例如:
[ 99 , "qiumengchen" , true , [1,2,3] , {"name":"qiumengchen"} , null ]
4. 與XML比較
與XML相同之處
- JSON 是純文本
- JSON 具有"自我描述性"(人類可讀)
- JSON 具有層級結構(值中存在值)
- JSON 可通過 JavaScript 進行解析
- JSON 數據可使用 AJAX 進行傳輸
與XML不同之處
- 沒有結束標簽
- 更短
- 讀寫的速度更快
- 能夠使用內建的 JavaScript eval() 方法進行解析
- 使用數組
- 不使用保留字
5. 輔助工具
- JSON在線解析工具(功能包括:JSON格式化硕淑、壓縮课竣、驗證格式、JSON轉XML置媳、CSV于樟、YAML),地址如下:https://c.runoob.com/front-end/53
- Chrome瀏覽器插件:JSON-handle