1. 程式人生 > 實用技巧 >JSON 簡明教程

JSON 簡明教程

前言

什麼是 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"

二、JSON解析工具

http://www.json.cn/

http://c.runoob.com/front-end/53