JSON語法

JSON語法是 JavaScript 语法的子集。换句话说:JSON語法衍生于 JavaScript 语法。

需要注意的是:JSON語法比JavaScript语法更加苛刻严格。

JSON語法可以表示哪些值

  • 简单值:字符串、数值、布尔值 和 null。不支持JavaScript中的undefined。
  • 對象。表示一組無序列表。JSON中最常見的類型,由一個或多個名稱/值對組成。
  • 數組。表示一組有序列表。數組的值可以是任意類型:簡單值、對象、數組。

JSON表示簡單值

//JSON表示字符串
"Hello"
//JSON表示数字
9
//JSON表示布尔值
true
//JSON表示Null
null

JSON表示對象

JSON表示對象时,总结起来就是如下几条规则:

  • 數據存放在名稱/值對中。
  • 名稱/值对之间以逗号分隔。
  • JSON表示對象时用花括号"{}"包裹。

JSON表示的對象中的名稱必須是字符串,且書寫時必須用雙引號包裹,這一點,JavaScript對象標記法語法則沒有這麽嚴格。

JSON表示的對象中的值可以是簡單值、對象或數組。

名稱/值中间用冒号分隔开。示例:

{
"name":"Tom"
}

上面的示例中,name是名稱,Tom是這個名稱對應的具體的值。

存在多個名稱/值對時,需要用逗號分隔開。

{
"name":"Tom",
"age": 18,
"family-member": ["father", "mother", "sister"]
}

JSON表示數組

JSON表示的數組,數組中的成員可以是簡單值、對象或數組。多個成員之間用逗號隔開,但最後一個成員末尾禁止使用逗號。

["apple", 21, {name: "Tom"}, false, null]

总结:JSON語法与JavaScript语法的差异

上面我们提到:JSON語法衍生于 JavaScript 语法,JSON語法比JavaScript语法更加苛刻严格。

  1. JavaScript能表示的數據類型比JSON更多。JSON無法表示函數、undefined這兩種JavaScript支持的數據類型。
  2. JSON表示對象和数组时,最后一个名稱/值对(或数组成员)但最后一个成员末尾禁止使用逗号。
  3. JSON表示對象时,名稱/值对,中的名称只允许是字符串,且必须用双引号包裹起来。