首页 > 其他分享 >重写JSON.stringify与JSON.parse使其支持解析function类型

重写JSON.stringify与JSON.parse使其支持解析function类型

时间:2023-07-04 22:47:16浏览次数:50  
标签:function stringify return val parse JSON

const JSONStringify = (option) => {
    return JSON.stringify(option,
        (key, val) => {
            // 处理函数丢失问题
            if (typeof val === 'function') {
                return `${val}`;
            }
            // 处理undefined丢失问题
            if (typeof val === 'undefined') {
                return 'undefined';
            }
            return val;
        }
    )
}
const JSONParse = (objStr) => {
    return JSON.parse(objStr, (k, v) => {
        if (typeof v === 'string' && v.indexOf && v.indexOf('function') > -1) {
            // eval 可能在eslint中报错,需要加入下行注释
            // eslint-disable-next-line
            return eval(`(function(){return ${v}})()`);
        }
        return v;
    });
}

标签:function,stringify,return,val,parse,JSON
From: https://www.cnblogs.com/StevenYF/p/17527254.html

相关文章

  • vscode打开settings.json方法
    cmd+shift+p,输入settingOpenWorkspaceSettings也会打开UI设置界面;OpenUserSettings(JSON)会打开用户设置settings.json文件;OpenWorkspaceSettings(JSON)会打开工作区设置settings.json文件vscode存在两种设置settings.json的方式UserSettings用户设置:......
  • unity前后端通信 json解析 HTTP POST(BestHttp插件实现)
    1.配置请求体中的Json字符串1request_data=newRequestBodyClass();2request_data.a="Json第一个字段";3request_data.b="Json第二个字段";4stringbody=JsonUtility.ToJson(request_data);2.实例化HTTPRequest,请求头方法设置为POST,并且设置请求头中类型为json......
  • vue项目中的package.json的private选项的作用
    {"name":"项目名称","description":"描述","version":"版本","private":true,"author":"testTeam","license":"MIT",}如果你在你的package.j......
  • 关于Gin如何在multipart/form-data请求下解析JSON数组
    前言众所周知,在Gin下,如果只是在multipart/form-data请求下解析JSON对象到结构体的话就比较简单。但是如果是要解析JSON数组到对应请求结构体呢?正文举个例子:typeAddItemstruct{IDint`form:"-"` Images[]*multipart.FileHea......
  • How to use handleChange() function in react component?
    An onChange eventistriggeredwhenvaluesareenteredintheinput.Thisfiresafunction handleChange(),thatisusedtosetanewstatefortheinput.1.HandlingSingleInputFirst,wehavetosetuptheinputfieldasacontrolledcomponentsothatw......
  • 基于 Spring Cloud Function 的 Azure Function 开发
    Notice:本文章不包含AzureFunction环境配置等内容1.1前提Azure账户,且有可使用的订阅Azure支持的JDK(本教程适用于JDK1.8)IntelliJIDEA社区版或无限制版均可Maven3.5+最新的FunctionCoreTools1.2创建SpringCloudFunctionAzure工程在Github仓......
  • 【JAVA基础】JSON转换
    JSON转换json字符串与dto转换publicJsonDataJtMdmResultDataDTOreceiveinfoMQ(StringreqContent){JtMdmMaterialReqDTOjtMdmMaterialReqDTO=newJtMdmMaterialReqDTO();List<JsonDataJtMdmResultDataInfosDTO>jsonDataJtMdmResultDataInfoDTOList......
  • 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in
    项目场景:mysql创建function报错误1418-ThisfunctionhasnoneofDETERMINISTIC,NOSQL,orREADSSQLDATAin问题描述:执行创建函数的sql语句时,提示:ThisfunctionhasnoneofDETERMINISTIC,NOSQL,orREADSSQLDATAinitsdeclarationandbinaryloggingisenab......
  • 2023-07-03 uniapp小程序端报错:TypeError: eval is not a function
    完整报错:ErrorinonLoadhook:"TypeError:evalisnotafunction" onLoad钩子中的错误:“TypeError:eval不是函数”原因:代码里使用了eval函数,小程序端不支持该函数,h5端和app(Android)端支持。解决方案:小程序端采取替换eval方案。注意:eval函数被认为是不安全的函数,存在脚本代......
  • 如何在AutoCAD中快速将矢量数据导出到shp、mdb、kml、geojson、gpx文件?
    在AutoCAD中借助GIS4CAD插件能为您提供便捷的矢量数据导出功能,不论是shp、mdb、kml、geojson还是gpx等矢量文件格式都能轻松导出。方法/步骤下载并安装GIS4CAD插件http://www.geosaas.com/download/gis4cad.exe 下载并安装GIS4CAD插件,安装成功后在AutoCAD菜单栏的最后会......