JSON 簡明教程
阿新 • • 發佈:2020-08-08
前言
什麼是 JSON ?
- JSON 指的是 JavaScript 物件表示法(JavaScript Object Notation)
- JSON 是輕量級的文字資料交換格式
- JSON 獨立於語言:JSON 使用 Javascript語法來描述資料物件,但是 JSON 仍然獨立於語言和平臺。JSON 解析器和 JSON 庫支援許多不同的程式語言。 目前非常多的動態(PHP,JSP,.NET)程式語言都支援JSON。
- JSON 具有自我描述性,更易理解
JSON vs XML?
- JSON 和 XML 都用於接收 web 服務端的資料。
- JSON 和 XML在寫法上有所不同,如下所示:
JSON 例項
{ "sites": [ { "name":"菜鳥教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" } ] }
XML 例項
<sites> <site> <name>菜鳥教程</name> <url>www.runoob.com</url> </site> <site> <name>google</name> <url>www.google.com</url> </site> <site> <name>微博</name> <url>www.weibo.com</url></site> </sites>
JSON 與 XML 的相同之處:
- JSON 和 XML 資料都是 "自我描述" ,都易於理解。
- JSON 和 XML 資料都是有層次的結構
- JSON 和 XML 資料可以被大多數程式語言使用
JSON 與 XML 的不同之處:
- JSON 不需要結束標籤
- JSON 更加簡短
- JSON 讀寫速度更快
- JSON 可以使用陣列
一、JSON 基礎語法
語法要點
- 資料在名稱/值對中
- 資料由逗號分隔
- 大括號儲存物件
- 中括號儲存陣列
JSON 名稱/值對
JSON 資料的書寫格式是:名稱/值對。
名稱/值對包括欄位名稱(在雙引號中),後面寫一個冒號,然後是值:
"name" : "菜鳥教程"
JSON 值
JSON 值可以是:
- 數字(整數或浮點數)
- 字串(在雙引號中)
- 邏輯值(true 或 false)
- 陣列(在中括號中)
- 物件(在大括號中)
- null
JSON 數字
JSON 數字可以是整型或者浮點型:
{ "age":30 }
JSON 物件
JSON 物件在大括號({})中書寫:
物件可以包含多個 key/value(鍵/值)對。
{ "name":"菜鳥教程" , "url":"www.runoob.com" }
key 必須是字串,value 可以是合法的 JSON 資料型別(字串, 數字, 物件, 陣列, 布林值或 null)。
key 和 value 中使用冒號(:)分割。
每個 key/value 對使用逗號(,)分割。
巢狀 JSON 物件:
JSON 物件中可以包含另外一個 JSON 物件:
例項
{ "name":"runoob", "alexa":10000, "sites": { "site1":"www.runoob.com", "site2":"m.runoob.com", "site3":"c.runoob.com" } }
JSON 陣列
JSON 陣列在中括號中書寫,陣列值必須是合法的 JSON 資料型別(字串, 數字, 物件, 陣列, 布林值或 null),如:
[ "Google", "Runoob", "Taobao" ]
陣列也可包含多個物件,如下面的例子中,物件 "sites" 是包含三個物件的陣列。每個物件代表一條關於某個網站(name、url)的記錄:
{ "sites": [ { "name":"菜鳥教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" } ] }
JSON 物件中的陣列:
例項
{ "name":"網站", "num":3, "sites":[ "Google", "Runoob", "Taobao" ] }
JSON 布林值
JSON 布林值可以是 true 或者 false:
{ "flag":true }
JSON null
JSON 可以設定 null 值:
{ "runoob":null }
在下面的章節,您將學到如何把 JSON 文字轉換為 JavaScript 物件。
JSON 檔案
- JSON 檔案的檔案型別是 ".json"
- JSON 文字的 MIME 型別是 "application/json"