今天学习的时候遇到了json_stringify 和 json_parse这两个方法,就好奇他们之间有没有什么相似的地方,
所以就去网上找了一下,接下来,我们一起去了解一下吧
先看下面这段代码
var obj = {
'name':'lala',
'age':19,
'sex':'nan'
}
var arr1 = ['stuid','classid',51];
var arr2 = ['name','age',11];
// 一个参数时
console.log(JSON.stringify(obj));
// 两个参数时 第二个参数为数组,可以看到只显示了name和age,因为sex属性在数组arr2里没有,所以没显示
var doublearr = JSON.stringify(obj,arr2);
console.log(doublearr);
// 两个参数时 二个参数都为数组,只会显示第一个
console.log(JSON.stringify(arr1,arr2));
// 两个参数时 第二个参数为函数,返回json类型格式的字符串
var doubargment = JSON.stringify(obj,function (key,value) {
return value;
});
console.log(doubargment);
// 三个参数时 第三个参数为分隔符,可以看到都是以gbk开头的
console.log(JSON.stringify(obj,function (key,value) {
return value;
},'gbk'));
运行效果如下
我们接着看一下json_parse的用法
var str = '{"name":"lala","age":13,"sex":{"fist":"nan","two":"nv"}}';
var obj = JSON.parse(str);
console.log(typeof obj)
console.log(obj);
运行效果如下
可以看到我们的字符串str被转换成了对象,综上两个案例可以发现,json_stringify的作用就是将对象转换成json类型格式的字符串,而json_parse则是将js类型格式的字符串转换成对象
注:json_parse必须要是json类型格式的才能转换,不然就会报错,纯数字和字符串’null’不报错
好啦,到了我们今天的总结时间啦
- json_stringify ---- 将对象转换为json格式的字符串
- 语法:JSON.stringify(value 对象[, replacer函数/数组] [, space分隔符])
- 要是第一个参数和第二个参数都是数组,只会显示第一个
- 对象+数组 显示共有的,对象属性 == 数组值
- 分隔符如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10
- json_parse ---- 将json格式的字符串转换为json对象
- 语法:json_parse(json-str)
今天的学习到这就结束咯,拜拜啦~