/**
* JSON 序列化,支持函数和 undefined
* @param data 数据
* @returns 序列化后的字符串
*/
export const JSONStringify = (data: any): string => {
const replacer = (_: string, v: any) => {
// 处理 undefined 丢失问题
if (isUndefined(v)) {
return null;
}
// 处理函数丢失问题
if (isFunction(v)) {
return `${v}`;
}
return v;
};
return JSON.stringify(data, replacer, 2);
};
/**
* JSON 反序列化,支持函数和 undefined
* @param data 数据
* @returns 反序列化后的值
*/
export const JSONParse = (data: string): any => {
const reviver = (_: string, v: any) => {
if (isString(v) && isFunctionString(v)) {
return new Function(`return ${v}`)();
}
return v;
};
return JSON.parse(data, reviver);
};
JSON 序列化及反序列化,支持函数和 undefined
更新于: at 07:52