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)
result.fetchtext().then(data=>{
  console.log(data)
})
result2.fetchtext().then(data=>{
  console.log(data)
})
 
 

参考资料

https://github.com/rogeriopvl/json-fns/blob/master/json-fns.js

posted on   荣锋亮  阅读(854)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-07-25 通过granfana 以及prometheus 比较zulu 、oracle、openjdk 等jvm 运行
2018-07-25 hasura graphql 角色访问控制
2018-07-25 hasura graphql schema 导出
2018-07-25 hasura graphql 模式拼接demo
2018-07-25 Reusing & Composing GraphQL APIs with GraphQL Bindings
2018-07-25 hasura graphql 模式拼接概念
2018-07-25 hasura graphql pg 自定义函数的使用

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示