【发布时间】:2021-04-28 19:03:54
【问题描述】:
JSON.stringify 允许您传递自定义 replacer,JSON.parse 允许您传递自定义 reviver。这对例如非常有帮助。 RegExp 类型,因为it can't be de-/serialized by default:
var o = {
foo: "bar",
re: /foo/gi
};
function replacer(key, value) {
if (value instanceof RegExp)
return ("__REGEXP " + value.toString());
else
return value;
}
function reviver(key, value) {
if (value.toString().indexOf("__REGEXP ") == 0) {
var m = value.split("__REGEXP ")[1].match(/\/(.*)\/(.*)?/);
return new RegExp(m[1], m[2] || "");
} else
return value;
}
console.log(JSON.parse(JSON.stringify(o, replacer, 2), reviver));
问题
这样的replacer和reviver可以全局添加吗?
【问题讨论】:
标签: javascript json