mirror of
https://gitee.com/dromara/go-view.git
synced 2026-04-23 00:00:12 +08:00
perf: 优化 JSON 序列化无法处理函数的问题
This commit is contained in:
@@ -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
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user