相信大家对于 JSON.stringify 和 JSON.parse 一定不陌生,我们在使用本地储存的时候经常使用(存:localstorage.setItem(“key”,JSON.stringify( obj ) 取: JSON.parse(localstorage.getItem(“key”)),下面让我们看看这个方法的其他参数用法。
const stu = {
name: 'zcxiaobao',
age: 18
}
console.log(JSON.stringify(stu));
//"{"name":"zcxiaobao","age":18}"
注意:
JSON.stringify({
doStuff: function() { },
doThings: [ function() {}, undefined ]
});
// 输出结果: "{"doThings":[null,null]}"
JSON.stringify({ a:1, b:2 }, ['a'])
// '{"a":1}' 只将属性 a 转换为字符串
(2) JSON.stringify 方法还可以接受一个函数作为参数,用来更改默认的字符串化的行为。
function f(key, value) {
if (typeof value === "number") {
value = 2 * value;
}
return value;
}
JSON.stringify({ a:1, b:2 ,c:'name'}, f)
// "{"a":2,"b":4,"c":"name"}"
var person = {
name: "Jim Cowart",
location: {
city: {
name: "Chattanooga",
population: 167674
},
state: {
name: "Tennessee",
abbreviation: "TN",
population: 6403000
}
},
company: "appendTo"
};
//如果你希望缩进量为2 个空格,
// 你可以这么干:
console.log(JSON.stringify(person, null, 2));

const stu = {
name: 'zcxiaobao',
age: 18
}
let new_stu = JSON.stringify(stu)
//"{"name": "zcxiaobao","age": 18}"
let old_stu = JSON.parse(new_stu)
//{
// "name": "zcxiaobao",
// "age": 18
//}
function f(key, value) {
if ( key === ""){
return value;
}
if ( key === "a" ) {
return value + 10;
}
}
var o = JSON.parse('{"a":1,"b":2}', f);
o.a // 11
o.b // undefined
欢迎大家积极讨论……