JSON数据格式
一、JSON介绍
JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
二、JSON的语法规则
包括JavsScript中几乎全部基本数据类型,null和boolbean包括,undefined不包括。
key必须使用双引号,value如果是字符串类型也必须是双引号。如下为标准的JSON格式
{
"name":"小兔",
"age":24,
"like":[1,2,3]
"null":null,
"college":{
"name":'jxcdxjg',
"address":"gqc"
}
}
三、JSON的API
1.JSON.stringify(obj,filter?,space?)
第一个参数为序列化为JSON数据的对象,第二个参数是过滤,数组或者函数,第三个参数是返回数据的缩进方式 类型可以是string|number|
let obj = {
name:'xiaotu',
age:24,
likes:['唱','跳','rap','篮球'],
symbol:Symbol()
}
let jsonText = JSON.stringify(obj,(key:string,value:any)=>{
return value
},2)
let jsonText = JSON.stringify(obj,(key:string,value:any)=>{
switch (key) {
case 'symbol':
return value.toString()
default:
return value
}
},2)
console.log(jsonText)
上述例子中可以看出Symbol()是不会被序列化的直接删除,jsonText2中可以使用函数的形式将类型为symbol保留下来。
注意:还是不要用特殊字符缩进为好,防止转换为对象发生错误
2.JSON.parse(jsonText,filter?)
将JSON数据解析为JavaScript对象。第一个参数为JSON对象,第二个参数为(key,value)函数
let distObj = JSON.parse(jsonText2,(key:string,value:any)=> key =='symbol'? Symbol(value) : value)