什么是Json
  • JSON指的是JavaScript对象表示法(JavaScript Object Notation)
  • JSON是轻量级的文本数据交换格式
  • JSON独立于语言
  • JSON具有自我描述性,更易理解
  • 文件名扩展是 . json
JSON使用范围
  • 用于编写基于JavaScript应用程序,包括浏览器扩展和网站
  • JSON格式可以用于通过网络连接序列化和传输结构化数据
  • Web服务和APIs可以使用JSON格式提供公用数据
  • 还可以用于现代编程语言中
JSON特点
  • JSON容易阅读和编写
  • 它是一种轻量级的基于文本的交换格式
  • 和语言无关
JSON语法规则

JSON使用 JavaScript语法来描述数据对象,JSON语法是JavaScript语法的子集,包括以下内容:

  • 数据使用名/值对表示
  • 使用大括号保存对象,每个名称后面跟着一个‘:’(冒号),名/值对使用,(逗号)分割。
  • 使用方括号保存数组,数组值使用,(逗号)分割。
  • 花括号保存对象。
JSON的两种表示结构

JSON的结构有2种:

  • 对象结构
  • 数组结构
对象结构

对象结构是使用大括号“{}”括起来的,大括号内是由0个或多个用英文逗号分隔的“关键字:值”对(key:value)构成的。

语法
var jsonObj =
{
    "键名1":值1,
    "键名2":值2,
    ……
    "键名n":值n
}
说明:

jsonObj指的是json对象。对象结构是以“{”开始,到“}”结束。其中“键名”和“值”之间用英文冒号构成对,两个“键名:值”之间用英文逗号分隔。
注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑 true 和 false 。

JSON数组结构

JSON数组结构是用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。

var arr =
[
    {
        "键名1":值1,
        "键名2":值2
    },
    {
        "键名3":值3,
        "键名4":值4
    },
    ……
]
说明:

arr指的是json数组。数组结构是以“[”开始,到“]”结束,这一点跟JSON对象不同。在JSON数组中,每一对“{}”相当于一个JSON对象。

JSON表示的数据示例

这是一个电话本的例子

{
      "FirstName": "John",
      "LastName": "Doe",
      "Age": 43,
      "Address": {
          "Street": "Downing Street 10",
          "City": "London",
          "Country": "Great Britain"
      },
      "Phone numbers": [
          "+44 1234567",
          "+44 2345678"
      ]
  }
JSON名称/值对

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"FirstName": "John"

等价于这条 JavaScript语句:

FirstName = "John"
JSON的值

JSON的值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null
JSON对象

JSON对象在花括号({})中书写,对象中可以包含多个名称/值对:

{ "firstName":"John" , "lastName":"Doe" }

等价于JavaScript语句

firstName = "John"       
lastName = "Doe"
JSON数组

JSON数组在方括号中书写,数组可以包含多个对象:

{      
"employees": [        
{ "firstName":"John" , "lastName":"Doe" },        
{ "firstName":"Anna" , "lastName":"Smith" },        
{ "firstName":"Peter" , "lastName":"Jones" }        
]        
}

在上面的例子中,对象“employees”是包含三个对象的数组。每个对象代表一条关于某人的记录。

JSON布尔值

JSON布尔值可以使 true 或者 false :

{ "flag":true }
JSON null

JSON可以设置null值:

{ "runoob":null }