如何将 JSON 字符串转换为 JavaScript 中的函数?

2024-02-10

如何将 javascript/jquery 中的字符串转换为函数?

我正在尝试使用 JSON 参数列表来初始化函数。但是,其中一个参数是一个函数,我将其存储为字符串,当我尝试使用 eval() 返回该函数时,出现错误。

例如,如果我的 JSON 是:

json = { "one": 700, "two": "function(e){alert(e);}" }

然后在我的代码中:

parameters = eval(json);
$('myDiv').addThisFeature({
 parameter_1: json.one,
 parameter_2: eval(json.two)  // <= generates error
})

Example: http://jsfiddle.net/patrick_dw/vs83H/ http://jsfiddle.net/patrick_dw/vs83H/

var json = '{ "one": 700, "two": "function(e){alert(e);}" }';
var parameters = JSON.parse( json );
eval( 'var func = ' + parameters.two );
func( 'test' ); // alerts "test"

您需要在不支持 JSON 库的浏览器中加载它。

或者进行两个单独的评估:

Example: http://jsfiddle.net/patrick_dw/vs83H/1/ http://jsfiddle.net/patrick_dw/vs83H/1/

var json = '{ "one": 700, "two": "function(e){alert(e);}" }';
eval( 'var parameters = ' + json );
eval( 'var func = ' + parameters.two );
func( 'test' );

我假设您意识到评估的危险。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 JSON 字符串转换为 JavaScript 中的函数? 的相关文章

随机推荐

  • 如何在 Pandas 数据框中选择基于行的类别

    这确实微不足道 但不敢相信我已经闲逛了一个小时 仍然可以找到答案 所以在这里 df pd DataFrame cats a b vals 1 2 df cats df cats astype category df 我的问题是如何选择 ca
  • 读取接收和发送的网络流量字节

    在 Objective C 中获取网络流量发送和接收字节的最简单方法是什么 这并不容易 而且它来自 C 而不是 Objective C 但是您需要的所有信息都存储在返回给您的接口地址的 ifa data 字段中获取ifaddrs 3 您可以
  • Google 地图 API 密钥警报

    我的 Google 地图 API 密钥有问题 我收到一条警报说 This web site needs a different Google Maps API key 当我按 确定 收到警报时 地图正在加载并且工作正常 同样的问题已经发布
  • 如何向 Python shell 添加制表符补全?

    当使用启动 django 应用程序时python manage py shell 我得到一个 InteractiveConsole shell 我可以使用制表符完成等 Python 2 5 1 r251 54863 Apr 15 2008
  • Rails image_tag 旋转图像

    我使用亚马逊的 S3 进行图像存储 并配置了载波和雾 图像似乎存储正确 但是当我有 肖像 图像 宽度小于高度 时 它无法正确显示 而是将图像旋转到其一侧 任何正确方向的指示将不胜感激 上传者 image uploader rb class
  • C/C++ 处理程序 SIGFPE 是什么?

    好吧 我搜索了有关 SIGFPE 的文章 然后我写了一些测试 但它的行为很奇怪 那我只好在这里发帖寻求帮助了 GCC G 或 ISO C 是否明确定义了除以零会发生什么 1 我搜索了这篇文章 除以零不会抛出 SIGFPE https sta
  • 在 swift 3 中以编程方式设置 UIImageView AspectRatio 约束

    我在故事板中有一个 UIImageView 其 AspectRatio 为 1 1 在某些情况下我想在 ViewController 中以编程方式更改为 2 1 我在 ViewController 中创建该约束的引用 但无法设置该约束 您可
  • 使用引导工具提示进行 Javascript 验证

    当验证返回 false 时 我在启动输入字段的引导工具提示时遇到问题 更多细节 我有想法用 javascript 函数验证我的表单 这工作得很好 但是当验证错误时一定会发生一些事情 我正在考虑引导工具提示 简单 易于控制 现在对我来说是最好
  • Django ModelChoiceField 允许创建对象

    姜戈的ModelChoiceField https docs djangoproject com en 1 8 ref forms fields django forms ModelChoiceField是从模型派生表单时用于外键的默认表单
  • 当使用 unicorn 启动 Rails 时,Nginx 失败(13:权限被拒绝)

    我的 Rails 应用程序在服务器上运行Unicorn and Nginx 但是在配置Nginx并启动它之后 我收到错误 2015 08 03 15 43 44 crit 13951 0 1 stat home ec2 user apps
  • 使用 Python 从 Google Drive / Workspace 下载电子表格

    您能否生成一个 Python 示例 说明如何下载给定密钥和工作表 ID 的 Google Sheets 电子表格 gid 我不能 我已经搜索了 API 的版本 1 2 和 3 我运气不好 我无法弄清楚他们复杂的类似 ATOM 的 feed
  • 根据 pandas DataFrame 中的值序列生成索引元组

    这是我之前问题的后续 根据 pandas DataFrame 列中的值序列查找行索引 https stackoverflow com questions 61735585 finding the index of rows based on
  • 将对象插入哈希表 (C++)

    这是我第一次制作哈希表 我试图将字符串 键 与指向 Strain 类对象 数据 的指针相关联 Simulation h include
  • 细粒度的权限;主要权限——角色与权限分离;

    我在 wcf 服务中使用 PrimaryPermission 一段时间了 PrincipalPermission SecurityAction Demand 角色 SecurityRoles CanManageUsers 我们的角色前缀为
  • 如何知道我使用的是哪个 Android 支持库 v4 修订版?

    我可以在 Android SDK 管理器中看到我的计算机上安装的版本 在 Android SDK 管理器中 但通常项目使用 libs 文件夹中自己的副本 除了文件日期之外 有什么方法可以告诉我在特定项目中使用的是 android suppo
  • IntelliJ - 调试设置下一条语句?

    在 IntelliJ 中调试时如何退回到上一行 我在调试菜单或命令中没有看到任何执行此操作的内容 目前 IDEA 不支持向后调试 不过 对于 Java 调试器工具栏上有 Drop Frame 操作和按钮 它可以让您在堆栈中向上移动一帧并重新
  • 为 Objective-C 集合实现 -hash / -isEqual: / -isEqualTo...:

    Note 以下问题是相关的 但它们和链接的资源似乎都没有完全回答我的问题 特别是与实施平等测试有关对象的集合 覆盖 isEqual 和 hash 的最佳实践 https stackoverflow com questions 254281
  • 分析 iOS 中的 Assets.car 文件

    我试图减少 iOS 应用程序的整体大小 目前为 48MB 当我分析子文件夹时 我发现 Assets car 占用了 41MB 我无法打开并查看哪个占用了那么多空间 我找不到有关 Assets car 文件的任何好的文档 有人可以建议如何查看
  • 为什么 C++ 在将 float 转换为 char 时不显示缩小转换错误?

    使用编译此代码g std c 17 Wall pedantic main cpp不会产生任何警告 include
  • 如何将 JSON 字符串转换为 JavaScript 中的函数?

    如何将 javascript jquery 中的字符串转换为函数 我正在尝试使用 JSON 参数列表来初始化函数 但是 其中一个参数是一个函数 我将其存储为字符串 当我尝试使用 eval 返回该函数时 出现错误 例如 如果我的 JSON 是