JSON
什么是JSON呢?
json是一种轻量级的数据格式的 (并不是js中独有的数据格式)
是用来存储表示数据的
JSON
可以表达三种类型的值
1.简单值 2.对象 3.数组包括字符串,数值,布尔值,空 (不包含undefined)
JSON的表示方式
'{"name":"小卤蛋","age":"20"}'
但是一般情况下JSON
的表示方式不是这样,而是数组和对象的结合形式
'[{"name":"李华","age":"20"},{"name":"李四","age":"28"},]'
那么我们来输出一下并检查一下他的数据类型
var data = `[{"name":"李华","age":"20"},{"name":"李四","age":"28"}]`;
console.log(data);
console.log(typeof data);//String
JSON
序列化和反序列化
就是指JSON格式的数据和普通数组对象的格式来回转换
下面来说说JSON的序列化和反序列化
什么是序列化和反序列化呢?
序列化:
原生的数组对象可以转换为JSON的字符串
关键字JSON.Stringify()
括号里面有三个参数 第一个参数是需要转换JSON类型字符串的数据,第二个参数是数组或函数,用来进行过滤筛选的,第三个参数是排版格式
1.加入第二个参数数组进行筛选
var data = [{"name":"李华","age":"20"},{"name":"李四","age":"28"}];
//数组之前的数字
console.log(JSON.stringify(data));
//过滤只有name的
console.log(JSON.stringify(data,["name"]));
//检查序列化的数据类型
console.log(typeof JSON.stringify(data));
序列化
2.第二个参数是函数进行添加或筛选
将所有只有叫name的 向他之前加入一个Dear 其他数据不变
var data = [{"name":"李华","age":"20"},{"name":"李四","age":"28"}];
console.log(JSON.stringify(data,function(key,value){//还可以穿函数
if(key == "name"){
return "Dear"+value
}else{
return value
}
}));
函数作为参数
3.第三个参数的排版格式
var data = [{"name":"李华","age":"20"},{"name":"李四","age":"28"}];
console.log(JSON.stringify(data,["name"]))
console.log(JSON.stringify(data,["name"],4))
排版格式
那么后面的4
代表什么意思呢
4代表的意思就是占位符
,差不多就是四个空格的意思 也可以用别的来表示
如我们将第三个参数换成星号 看看表示的结果
var data = [{"name":"李华","age":"20"},{"name":"李四","age":"28"}];
console.log(JSON.stringify(data,["name"]))
console.log(JSON.stringify(data,["name"],"****"))
****
其实最后一个参数在功能上并没有什么用,只是可以让我们更清楚的看数据
反序列化(解析)
将加载好的JSON文件,转换可以正常解析的原生js值,就是数组对象
关键字 JSON.parse()
parse翻译中文就是解析的意思
下面我们将一个JSON数据解析,然后并输出他的数据类型
var data = `[{"name":"李华","age":"20"},{"name":"李四","age":"28"}]`;
console.log(JSON.parse(data));
console.log(typeof JSON.parse(data));//object
JSON.parse()
网友评论