JSON
JSON全程为JAVAScript object Notation,指的是javascript对象表示法
JSON采用完全独立于编程语言的文本格式来存储、表示和交换数据
JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,并有效的提升网络传输效率
JSON语法规则
JSON语法是javascript对象表示语法的子集
大括号保存对象
数据以"名值"对(“键值”对)表示
数据之间由逗号分隔
中括号保存数组
{
"name":"网站",
"num":3,
"sites":["tedu","Google","Taobao"]
}
JSON有时候也叫JSON字典,左边是词,右边解释,专业讲左边是存储数据的变量名,叫键,右边是数值,叫值
JSON数据的书写格式是:键值对(左边是词,右边是解释,专业讲左边是存储数据的变量名,叫键,右边是数值,叫值),键值之间必须用英文冒号间隔,键必须是字符串(放在双引号中),值是字符串或文字以及日期时间必须加双引号,数字类型不加引号
JSON的数据类型
字符串、数字、逻辑值(true或false)、NULL、对象(在大括号中)、数组(在括号中)
{
"name":"Tom",
"age":20,
"salary":4567.78,
"member":true,
"other":null
}
JSON对象
JSON对象在大括号{}中书写
对象可以包含多个键值对
每个键值对使用逗号,分隔
{
"name":"Tom",
"age":20,
"salary":4567.78,
"member":true,
"other":null
}
JSON对象嵌套
JSON对象中可以包含另一个JSON对象
{
"name":"runbo",
"alexa":1000,
"sties":{
"site1":"www.baidu.com",
"site2":"www.tmooc.cn"
}
}
JSON数组
JSON数组在中括号[]中书写
JSON中数组值必须是合法的JSON数据类型
JSON数组可以包含数组,或者包含JSON对象
{
"name":"网站",
"num":3,
"sites":["tedu","Google"]
}
JSON对象中也可以书写数组
例如:[数据1,数据2,数据3.....],数组中也可以继续写JSON对象和数组,但是最外边一般都是{},并{}不能省略
JSON与python字典区别
1.JSON和字典非常类似,都是键值对(key-value)的形式,而且JSON、字典也可以非常方便的通过dumps、loads互转
JSON是一种数据格式,纯字符串
字典是一个完整的数据结构
2.JSON的键只能是字符串,字典可以是任何的hash对象(hashtable type)
3.JSON的键可以有序、重复的。字典的键是不可以重复的。
4.JSON的值只能是字符串、浮点数、布尔值、null,数组、对象
5.JSON任意键存在默认值undefined,字典默认是没有默认值
6.JSON访问方式可以是[],也可以是.,遍历方式分为in、of。字典的values仅可以下标访问
7.JSON的字符串必须是双引号,字典里可以是单引号、双引号
8.字典可以嵌套元祖类型,JSON里只有数组类型
9.JSON:true、false、null
字典 : True、False、None
10.JSON中文必须是unicode编码,如:"\u6211"
11.JSON的类型是字符串,字典的类型就是字典