1.什么是json
是服务器端与客户端之间数据传输的格式
最常用的数据交换格式是JSON,以json格式提交数据,以json格式响应回来
JavaScript object notation 是一种数据交换格式,本质是用字符串的方式来表示对象或数组类型的数据
const obj='{"name":"zs","age":23}' const arr='["aaa","bbb"]' const user=`{ "name":"zd", "age":234 }`
对象的属性和值都用双引号,除了数字,然后在大括号的两边加一个单引号包裹,本质就是以【字符串的方式】表示【对象格式】的数据
就是在对象外面加一个字符串,也可以用于数组
2.json数据的格式有两种
-
对象格式
对象格式的json数据,最外层使用大括号进行包裹,内部的数据为key:value的键值对形式,这里key必须使用英文的双引号,value的值只能是字符串,数值,布尔值,null,数组,对象类型
-
数组格式
数组格式的json数据,最外层使用[ ] 进行包裹,内部的数据每一项之间用英文的逗号分割,值的类型只能是字符串,数值,布尔值,null,数组,对象类型
-
转化
此时看数据类型,就是string,把json格式数据再转化为js对象用JSON.parse,也可以json.stringfy,把js对象转化为字符串
console.log(typeof user) //string console.log(JSON.parse(user)) //变成对象 {name: 'zd', age: 234} const obj1={ "name":"ffg", "age":23 } console.log(JSON.stringify(obj1)) //变成字符串 {"name":"ffg","age":23}
3.json文件
后缀是json,不能有多余的逗号,里面都是双引号
注意:
-
属性名必须使用双引号包裹
-
字符串类型的值也必须使用双引号包裹
-
json中不允许使用单引号表示字符串
-
json中不能写注释
-
json的最外层必须是对象是数组格式
-
不能使用undefined或者函数作为json的值
{ "name":"dd", "age":13 }