json parse 解析js function
Posted rongfengliang-荣锋亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json parse 解析js function相关的知识,希望对你有一定的参考价值。
前边有简单介绍过基于json-fn 解析处理json function 的,以下是一个整理
json.parse 的签名
JSON.parse(str, reviver)
解决说明
我们可以基于reviver 处理function
处理的方法
通过evel 以及Function 对象
参考方法
reviver 为使用evel 的,reviver2为使用Function 对象的
const jsonfn = require(‘json-fns‘)
const reviver = (key, value) => {
if (typeof value !== ‘string‘) {
return value
}
?
if (value.indexOf(‘function‘) === 0) {
/* eslint-disable-next-line no-eval */
return eval(`(${value})`)
}
}
?
const reviver2 = (key, value) => {
if (typeof value !== ‘string‘) {
return value
}
?
if (value.indexOf(‘function‘) === 0) {
/* eslint-disable-next-line no-eval */
return new Function(`return ${value}`)()
}
}
?
?
let userids = {
fetchid: function () {
return Promise.resolve({
name: "dalong1",
age: 22
})
},
fetchtext: function () {
return Promise.resolve({
name: "dalong2",
age: 33
})
},
login: function () {
return Promise.resolve({
name: "dalong3",
age: 44
})}
}
?
const tep = jsonfn.stringify(userids)
console.log(tep)
const result = JSON.parse(tep,reviver)
const result2 = JSON.parse(tep,reviver2)
console.log(result)
console.log(result2)
参考资料
https://github.com/rogeriopvl/json-fns/blob/master/json-fns.js
以上是关于json parse 解析js function的主要内容,如果未能解决你的问题,请参考以下文章
解析器错误:SyntaxError:JSON.parse:JSON 数据的第 2 行第 1 列出现意外字符 200 OK
js中解析json对象:JSON.parse()用于从一个字符串中解析出json对象, JSON.stringify()用于从一个对象解析出字符串。