将函数作为 json 对象中的值进行访问

Access a function as a value in json object

我有一个 json 对象

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

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

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

当我 运行 查询时,我收到错误消息:'Expected type FUNCTION but found DATUM:\n"function() {return null;}"',

请提出修复建议。

一方面,您通常不应该将函数作为 JSON 发送,这就是问题的根源。但是,暂时忽略它,您可以 eval:

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

但要小心eval。还有安全问题等等

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