json数据格式和对象的区别

1.JSON

  • JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。
  • JSON是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。
  • JSON以键值的形式
  1. 键名必须用双引号
  2. 值只能是数值(10进制),字符串(双引号),布尔值,和null,数组,或者符合JSON要求的对象,不能是函数,NaN, Infinity, -Infinity和undefined
  3. 最后一个属性后面不能有逗号
  4. 前导0不能用,
  5. 小数点后必须有数字
  • 正确的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对象

  1. 键名可允许不加,或加单引号,或加双引号都可以;
  2. 值没有限制
  3. 最后一个属性后面允许有逗号
    注意:区分在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)