1. 概念
JSON 只是一种数据格式,JSON 对象中的 key 必须用双引号包裹,如下:
{
"name": "yqcoder"
}
2. 对象字面量转 JSON 字符串对象
let yqcoder = {
name: "yqcoder",
};
JSON.stringify(yqcoder); // '{"name":"yqcoder"}'
// 两次 JSON.stringify 加 \
let _yqcoder = {
name: "yqcoder",
_name: '{"name":"yqcoder"}',
};
JSON.stringify(_yqcoder); // '{"name":"yqcoder","_name":"{\"name\":\"yqcoder\"}"}'
// 三次 JSON.stringify 加 \\\
let __yqcoder = {
name: "yqcoder",
_name: '{"name":"yqcoder"}',
__name: '{"name":"yqcoder","_name":"{\"name\":\"yqcoder\"}"}',
};
JSON.stringify(__yqcoder); // '{"name":"yqcoder","_name":"{\"name\":\"yqcoder\"}","__name":"{\"name\":\"yqcoder\",\"_name\":\"{\\\"name\\\":\\\"yqcoder\\\"}\"}"}'
3. JSON 过滤
// 通过JSON删除 love,thr
let yqcoder = {
name: "yq",
age: 18,
love: "dyb",
thr: "aa",
};
JSON.stringify(yqcoder, ["name", "age"]); // '{"name":"yq","age":18}'
JSON.stringify(yqcoder, (key, value) => {
if (["love", "thr"].includes(key)) {
return undefined;
} else {
return value;
}
}); // '{"name":"yq","age":18}'