perf: 优化 JSON 序列化无法处理函数的问题

This commit is contained in:
奔跑的面条
2023-01-09 11:25:03 +08:00
parent 0c533575f4
commit 1b6c1a3530
7 changed files with 51 additions and 18 deletions
+34
View File
@@ -291,3 +291,37 @@ export const setKeyboardDressShow = (keyCode?: number) => {
}
}
/**
* * JSON序列化,支持函数和 undefined
* @param data
*/
export const JSONStringify = (data: object) => {
return JSON.stringify(
data,
(key, val) => {
// 处理函数丢失问题
if (typeof val === 'function') {
return `${val}`
}
// 处理 undefined 丢失问题
if (typeof val === 'undefined') {
return 'undefined'
}
return val
},
2
)
}
/**
* * JSON反序列化,支持函数和 undefined
* @param data
*/
export const JSONParse = (data: string) => {
return JSON.parse(data, (k, v) => {
if (typeof v === 'string' && v.indexOf && (v.indexOf('function') > -1 || v.indexOf('=>') > -1)) {
return eval(`(function(){return ${v}})()`)
}
return v
})
}