浅度分析JSON数据,因为JSON数据是最重要的前后端数据交互格式之一,但在使用的过程中,你是否出现过某些字段找不到之类的问题,因为JSON格式太过严格,所以会导致一系列我们认为的“坑”
JSON数据的真实面貌,毋庸置疑就是严格的遵守key:value的格式
一个大对象,包裹着key:value就是JSON
{
KEY:VALUE
}
var a = {
name:'张三',
foo:{
name:"张三1",
fun:function(){
console.log(a);
},
foo:{
name:'张三2',
age:12,
flag:true,
nos:undefined,
a:null,
f: new RegExp('\\w+'),
e:new Date(),
g:NaN
},
arr:[1,"1",null,undefined,function(){},true,[1,2,3]]
},
}
let b = JSON.stringify(a);
console.log(b);
// {"name":"张三","foo":{"name":"张三1","foo":{"name":"张三2","age":12,"flag":true,"a":null,"f":{},"e":"2022-08-25T08:34:37.559Z","g":null},"arr":[1,"1",null,null,null,true,[1,2,3]]}}
//为了好看点,我给他格式化一下
let 最终JSON.stringify结果 = {
"name":"张三",
"foo":{
"name":"张三1",
"foo":{
"name":"张三2",
"age":12,
"flag":true,
"a":null,
"f":{},
"e":"2022-08-25T08:34:37.559Z",
"g":null
},
"arr":[1,"1",null,null,null,true,[1,2,3]]
}
}
通过观察结果,得到以下规律

对于嵌套的数组结构里面的数据:undefined,function(){} 和上面第一层写的有所不同不一样,他们都变成了null