json数据格式和对象的区别
1.JSON
- JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。
- JSON是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。
- JSON以键值的形式
- 键名必须用双引号
- 值只能是数值(10进制),字符串(双引号),布尔值,和null,数组,或者符合JSON要求的对象,不能是函数,NaN, Infinity, -Infinity和undefined
- 最后一个属性后面不能有逗号
- 前导0不能用,
- 小数点后必须有数字
- 正确的json标准数据格式
{
"data":null,
"num":0.12,
"str":"历史",
"arr":["name","age"],
"obj":{"name":"赵四"},
"count":5522545
}
- 错误的json数据格式
{
//错误1:键名使用了单引号
'data':"json",
//错误2:键值使用了单引号
"name":'赵四',
//错误3:键值的是数字时,第一个数不能为0,即前导不能为0
"count":05222,
//错误4:为小数时,小数点后面必须跟值
"num":0.,
//错误5:键值不能是NaN,undefined,等值
"num1":NaN,
//错误6:最后一项不能有逗号
"nan":"李能",
}
注意:json文件中不带有注释
2.JavaScript对象
- 键名可允许不加,或加单引号,或加双引号都可以;
- 值没有限制
- 最后一个属性后面允许有逗号
注意:区分在JavaScript里的对象格式和在json格式里的对象格式
JavaScript对象
var stu ={id:1,"name":"mike",'age':25,card:'516512322',};
// 1.键名可以不写引号,或是单引号,或是双引号
// 2.最后一个属性后面允许有逗号
// 3.属性是字符串类型可以是双引号或者是单引号
JSON格式里的对象
{
"id":{"name":"jack","id":51231,"score":87}
}
3.两者的表格对比
对比内容 | json | js对象 |
键名 | 必须是加双引号 | 可以是单引号,也可以是双引号,也可以不加 |
属性值 | 只能是数值(10进制) ,字符串(双引号),布尔值和null,也可以是数组,符合JSON的对象,不能是函数,NaN,Infinity,-Infinity和undefined | javascript 中的任意值 |
逗号 | 最后一个值后面不能有逗号 | 可以有逗号,也可以没有 |
数值 | 前导不能为0,小数点后会有值 | 都可以 |
4.JSON格式的js对象与JSON字符串相互转换
1. JavaScript对象–>转JSON字符串
- 对象的键名是字符串数据类型且不是双引号(包括没有引号或者是单引号),会自动变成双引号;对象的属性是字符串数据类型且为单引号,会自动变成双引号
- 最后一个属性后面有逗号,会被自动去掉
- 使用的方法—JSON.stringfiy(obj)
//json数据格式,--其中id属性是对应json格式里的js对象
{
"id":{"name":"jack","id":51231,"score":87},
"score":54
}
2.Json字符串转---->JavaScript对象
- 使用的方法—JSON.parse(obj)