JSON
Json的含义
JSON 全称为JavaScript Object Notation,指的是JavaScript 对象表示法
JSON采用完全独立于编程语言的文本格式来存储、表示和交换数据
JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率
Javascript与Java的区别
Java是一种编程语言,可以做完整的软件
JavaScript(简称js,属于脚本语言)是java的一部分,而且经过了改造,一般不能用于做完整的软件,通常用于开发和测试中,辅助编码,实现程序中一部分代码的编写
JSON语法规则
JSON 语法是 JavaScript 对象表示语法的子集
大括号保存对象
数据以“名值”对(”键值”对)表示
数据之间由逗号分隔
中括号保存数组
{
"name“: "网站",
"num": 3,
"sites": ["tedu", "Google", "Taobao"]
}
JSON有时候也叫JSON字典(左边是词,右边是解释,专业讲左边是存储数据的变量名,叫键,右边是数值,叫值)
JSON数据的书写格式是:
名值对(键值对),(左边是词,右边是解释,专业讲左边是存储数据的变量名,叫键,右边是数值,叫值)
键值之间必须用英文冒号间隔
键必须是字符串(放在双引号中)
值是字符串或文字以及日期时间时加双引号,数不加引号
JSON值数据类型
字符串(在双引号中)
数字(整数或浮点数)
逻辑值(true 或 false)
null
对象(在大括号中)
数组(在中括号中)
{
"name": "Tom",
"age": 20,
"salary": 5678.68,
"member": true,
"other": null
}
JSON对象
JSON对象在大括号({ })中书写
对象可以包含多个名值对
每个名值对使用逗号(,)分隔
{
"name": "Tom",
"age": 20,
"salary": 5678.68,
"member": true,
"other": null
}
JSON对象嵌套
JSON对象中可以包含另外一个JSON对象
{
"name": "runoob",
"alexa": 10000,
"sites": {
"site1": "www.runoob.com",
"site2": "m.runoob.com",
"site3": "c.runoob.com“
}
}
JSON数组
JSON数组在中括号([ ])中书写
JSON中数组值必须是合法的JSON数据类型
JSON数组可以包含数组,或者包含JSON 对象
{
"name": "网站",
"num": 3,
"sites": ["tedu", "Google", "Taobao"]
}
Json字典中也可以写数组(形如[数据1,数据2,数据3...]),数组中也可以继续写Json字典和数组,但是最外边一般都是{ },{ }不能省略
JSON与Python字典区别
JSON和dict非常类似,都是key-value的形式,而且json、dict也可以非常方便的通过dumps、loads互转。
JSON:是一种数据格式,是纯字符串
dict:是一个完整的数据结构
JSON的key只能是字符串,dict可以是任何可hash对象(hashtable type);
JSON的key可以是有序、重复的;dict的key不可以重复。
JSON的value只能是字符串、浮点数、布尔值或者null,或者它们构成的数组或者对象。
JSON任意key存在默认值undefined,dict默认没有默认值;
JSON访问方式可以是[],也可以是.,遍历方式分in、of;dict的value仅可以下标访问。
JSON的字符串强制双引号,dict字符串可以单引号、双引号
dict可以嵌套tuple,json里只有数组。
JSON:true、false、null
dict :True、False、None
JSON中文必须是unicode编码,如"\u6211"
JSON的类型是字符串,字典的类型是字典