JSON对象的两种方法:stringify()和parse()
1、JSON.stringify(value, replacer,space)--把JavaScript对象序列化为JSON字符串
1)value:将要序列化为JSON字符串的值(必填) 当只有第一个参数时
let obj = {
name: 'Rabbit',
age: 22,
};
console.log(JSON.stringify(obj));
打印:
{"name":"Rabbit","age":22",}
2)replacer:过滤器参数。参数可能为数组,函数或null(可选)
数组:只有包含在这个数组中的属性名,才会显示;
函数:传入的函数接收两个参数,属性名和属性值;
没有提供/null:则不过滤,属性全部显示;
①第一个参数为数组,第二个参数为函数
let arr = ['Rabbit', 22];
console.log(JSON.stringify(arr, function (key, value) {
if (typeof value === 'string') {
return value;
}
return value;
}, 4));
结果:
[
"Rabbit",
22
]
②第一个参数为数组,第二个参数为数组,第二个参数会被忽略
let arr = ['Rabbit', 22];
console.log(JSON.stringify(arr, [1, 2], 4));
结果:
[
"Rabbit",
22
]
③第一个参数为对象,第二个参数为数组
let obj = {
name: 'Rabbit',
age: 22,
};
console.log(JSON.stringify(obj, ['name', 'age'], 4));
//如果此时数组里的字段与对象中的不对应,则不会显示
结果:
{
"name": "Rabbit",
"age": 22
}
④第一个参数为对象,第二个参数为函数
let obj = {
name: 'Rabbit',
age: 22,
};
console.log(JSON.stringify(obj, function (key, value) {
if (typeof value === 'string') {
return value;
}
return value;
}, 4));
结果:
{
"name": "Rabbit",
"age": 22
}
3)space:文本添加缩进、空格和换行符(可选)
数字:最大为10,大于10则转换为10,小于1则没有空格;
字符串:字符串长度最长不超过10个,大于10则取前10,替代空格显示;
没有提供/null:没有空格
2、JSON.parse() --把JSON字符串解析为原生JavaScript对象
JSON.parse(obj, [reviver])
1)obj:要被解析为JavaScript对象的字符串
2)reviver:函数,将在每个键值对上调用,用来修改解析生成的原始值,在parse返回之前调用(可选)
//像空数组里面添加对象,且对象不会被覆盖,可以写成这样 let admin=[] child.map((item)=>{ admin.push({'title':item.name})
})