一、什么是JSON?

JSON 是用于存储和传输数据的一种数据格式。

1、JSON 是纯文本(字符串)
2、JSON 具有"自我描述性"(人类可读)
3、JSON 具有层级结构(值中存在值)
4、JSON 可通过 JavaScript 进行解析
5、JSON 数据可使用 AJAX 进行传输

  

二、JSON的语法

1、数据在 名称/值 对中
2、数据由逗号分隔
3、大括号 {} 保存对象
4、中括号 [] 保存数组,数组可以包含多个对象
5、JSON 规定字符集是UTF-8,字符串必须使用双引号"",Object 的键也必须使用双引号""
6、数组或对象的最后一个成员,不能加 逗号
7、JSON键值对的 值 在有些情况下不需要加引号,例如:
                                —— 数字
                                —— 布尔值true/false
                                —— null
                                —— {}
                                —— []

  

示例:

{
    "status": "0000",
    "state": 200,
    "message": "success",
    "test": true,
    "test2": null,
    "data": {
        "title": {
            "id": "001",
            "name": "白菜"
        },
        "content": [
            {
                "id": "001",
                "value": "你好 白菜"
            },
            {
                "id": "002",
                "value": "你好 萝卜"
            }
        ]
    }
}

  

 

三、JSON对象

{ "name":"runoob", "alexa":10000, "site":null }
JSON 对象使用在大括号{}中书写。

对象可以包含多个 key/value(键/值)对。

key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。

key 和 value 中使用冒号(:)分割。

每个 key/value 对使用逗号(,)分割。

 

myObj = {
    "name":"runoob",
    "alexa":10000,
    "sites": {
        "site1":"www.runoob.com",
        "site2":"m.runoob.com",
        "site3":"c.runoob.com"
    }
}

  

四、JSON数组

[ "Google", "Runoob", "Taobao" ]
JSON 数组在中括号中书写。

JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。

JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined。

  

{
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}

  

myObj = {
    "name":"网站",
    "num":3,
    "sites": [
        { "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },
        { "name":"Runoob", "info":[ "菜鸟教程", "菜鸟工具", "菜鸟微信" ] },
        { "name":"Taobao", "info":[ "淘宝", "网购" ] }
    ]
}

  

 

五、JSON对象和JSON数据的嵌套

1、  一个JSON对象中可以嵌套一个或多个JSON数组

2、  一个JSON数组中也可以嵌套一个或多个JSON对象

3、  JSON对象或JSON数组中也可以嵌套一个或多个“自己”

如下是一个完美的例子:

{
    "name": "yinghui",
    "age": 20,
    "man": true,
    "money": null,
    "data1": {
            "d1": [1,2,3],
            "d2": [2,3,4]
    },
    "data2": {
            "d3": 100,
            "d4": 200
    },
    "data3": [
            {
                "d5": 300,
                "d6": 400
            },
            {
                "d7": 500,
                "d8": 600
            }
    ],
    "data4": [
        [4,5,6],
        ["hello","world"],
        ["000",true,null]
    ]
}