概述
JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。也是JavaScript的一个子集,表示对象。JSON是存储和交换文本信息的语法,类似于XML,但是它比XML更小,更快,更易解析。JSON规定字符集必须是UTF-8,字符串必须用双引号“”,Object的键也必须用双引号""。- 因为 
JSON有着上面的规定,使得JSON在其它编程语言也可以轻易解析。 
JSON vs XML
- 相同之处:
    
JSON和XML数据都是 “自我描述” ,都易于理解。JSON和XML数据都是有层次的结构JSON和XML数据可以被大多数编程语言使用
 
- 不同之处:
    
JSON不需要结束标签JSON更加简短JSON读写速度更快JSON可以使用数组
 
语法
语法规则
JSON 语法是 JavaScript 对象表示语法的子集。
- 数据在名称/值对中
 - 数据由逗号分隔
 - 大括号 {} 保存对象
 - 中括号 [] 保存数组,数组可以包含多个对象
 
JSON 名称/值对
JSON数据的书写格式是:
key : value
名称/值包括字段名称(在双引号中), 后面写一个冒号,然后是值:
"name" : "wtping"
JSON 值
JSON 值可以是:
- 
    
数字(整数
1或浮点数1.0){ "age" : 20 } - 
    
字符串(在双引号中
""){ "name" : "baidu" } - 
    
逻辑值(
true或false){ "flag" : true } - 
    
数组(在中括号中
[])[ { key1 : value1-1 , key2:value1-2 }, { key1 : value2-1 , key2:value2-2 }, { key1 : value3-1 , key2:value3-2 }, ... { keyN : valueN-1 , keyN:valueN-2 }, ] { "sites": [ { "name":"菜鸟教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" } ] } - 
    
对象(在大括号中
{}){ key1 : value1, key2 : value2, ... keyN : valueN } { "age" : 20 , "name" : "lisi" } - 
    
null
{ "value" : null } 
JSON对象
实例:
{ "name":"baidu", "num":10000, "site":null }
JSON对象使用在大括号({})中书写。- 对象可以包含多个 
key/value(键/值)对。 key必须是字符串,value可以是合法的JSON数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。key和value中使用冒号(:)分割。- 每个 
key/value对使用逗号(,)分割。 
嵌套对象
{
    "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)。
 
对象中的数组
对象属性的值可以是一个数组: 实例:
{
  "name":"网站",
  "num":3,
  "sites":[ "Google", "Runoob", "Taobao" ]
}
嵌套数组
JSON 对象中数组可以包含另外一个数组,或者另外一个 JSON 对象: 实例:
{
    "name":"网站",
    "num":3,
    "sites": [
        { "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻译" ] },
        { "name":"Runoob", "info":[ "菜鸟教程", "菜鸟工具", "菜鸟微信" ] },
        { "name":"Taobao", "info":[ "淘宝", "网购" ] }
    ]
}