You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从JSON文件调用JavaScript函数?能否在JSON中编写函数?

关于在JSON中执行JavaScript函数的问题

首先,JSON本身是纯数据格式,不支持直接嵌入或执行JavaScript函数。你贴的写法完全不符合JSON语法规范,会导致JSON解析器直接报错——因为JSON的结构只能是键值对,值只能是字符串、数字、布尔值、数组、对象或null,根本不能包含可执行的代码语句。

如果确实需要在和JSON相关的流程里执行函数,有几种可行的替代方案:

  • 把函数代码以字符串形式存在JSON中:将函数的源码写成字符串,放在JSON的某个字段里,之后在JavaScript中读取这个字符串,用eval()或者new Function()来执行。比如:

    {
      "func": "function exJsFunction() { console.log('执行函数'); }; exJsFunction();"
    }
    

    在JS中读取后执行的代码:

    const jsonData = JSON.parse(jsonString);
    eval(jsonData.func);
    

    注意:eval()存在严重安全风险,如果JSON的来源不可信,绝对不能用这种方式。

  • 在JSON中存函数标识,JS里映射执行:更安全的方式是在JSON里存一个函数名称或标识,然后在JavaScript代码里预先定义好对应的函数,读取JSON后根据标识调用对应的函数。比如:

    {
      "funcName": "exJsFunction"
    }
    

    JS中的处理代码:

    // 预先定义好函数
    function exJsFunction() {
      console.log('执行预设函数');
    }
    
    const jsonData = JSON.parse(jsonString);
    // 根据标识调用对应的函数
    if (typeof window[jsonData.funcName] === 'function') {
      window[jsonData.funcName]();
    }
    

    这种方式避免了执行未知代码,安全性和可维护性都更高。

  • 使用非标准的JSON扩展格式:有些库支持带函数的JSON变体(比如JSON5允许一些宽松语法,但仍不直接支持可执行函数),不过这类扩展不具备通用性,只能在特定环境下使用,不推荐用于跨平台或标准场景。

总结:别想着在JSON里直接写可执行函数,要么用字符串存源码(谨慎使用),要么用标识映射预设函数,后者是更可靠的方案。

内容的提问来源于stack exchange,提问作者Raziel Zohar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:15:27