javascript - 将函数作为 json 对象中的值访问

标签 javascript json node.js rethinkdb

我有一个 json 对象

"a1":
{
"b1": "val1",
 "b2": "function() {return null}",
 "c1": "{}"
}

需要传递此函数才能运行 rethink-db 查询。这个函数a1.b1需要传入

r.db(database).table(table).indexCreate(indexname, a1.b2, a1.c1)

当我运行查询时,我收到错误消息:'预期类型 FUNCTION 但找到 DATUM:\n"function() {return null;}"',

请提出解决此问题的建议。

最佳答案

一方面,您通常不应该以 JSON 形式发送函数,这是问题的根源。不过,暂时忽略这一点,您可以执行eval:

r.db(database).table(table).indexCreate(indexname, eval('('+a1.b2+')'), {});

不过要小心eval。存在安全问题等。

对于从字符串计算函数的一些其他方法,我建议查看 this question .

关于javascript - 将函数作为 json 对象中的值访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33487356/

相关文章:

node.js - 在 Heroku 上将 NodeJs 应用程序设为私有(private)

javascript - 使用 Vue 获取 img currentSrc

java - 无法从 START_ARRAY token 中反序列化对象的实例

javascript - Node 是有状态的吗? Node能否在内存中维护变量

ios - 如何使用嵌套的 NSDate 属性将 Realm 对象转换为 JSON?

java - 如何通过jackson JsonGenerator内联对象?

node.js - 执行文件后在 CLI 上继续

javascript - 确定 Google Maps API 是否在运行时使用了无效 key

javascript - 如果我不使用 Ajax 选择任何内容,如何避免下拉列表不修改数据 - MVC

javascript - 如何使用 v8 native 插件将 C++ 数组传送到 node.js