javascript - JSON.parse 里面有函数

标签 javascript json

我有一个字符串,如果我将它转换为 OBJ,它就可以正常工作。

var obj = JSON.parse('{ "placeholder": "Hello...."} ');

然后我就这样放到tagEditor插件里面$('textarea').tagEditor(obj);

但我还需要以这种方式评估内部是否存在一个函数并且它是否有效。

var obj = JSON.parse('{ "placeholder": "Hello....", "onChange":"function(a,b,c)}{ }"} ');

我把它....... $('textarea').tagEditor(obj);

但是当我这样做时我得到了错误 未捕获的语法错误:JSON 中位置 38 处的意外字符串

其实我想评估的是字符串的函数, 正如您所看到的,当我将事件“onchange”和对象中的函数放在一起时,它必须对其进行评估以使插件正常工作 有谁知道如何解决这个问题?

最佳答案

您应该首先声明该函数,然后在该函数上调用 toString(这将自动转义 ',这是您当前语法中的问题):

function x(a, b, c){
  return '';
}
const stringified = JSON.stringify({
  placeholder: "Hello....",
  onChange: x.toString()
});

具体来说,因为函数属性值的字符串分隔符使用',所以您需要转义内部使用的'。 (转

"onChange":"function(a,b,c)}{ return ''; }"

进入

"onChange":"function(a,b,c)}{ return \'\'; }"

)

但我不建议手动执行此操作,它会非常乏味且容易出错 - toString() 方法可能是更好的选择。

关于javascript - JSON.parse 里面有函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56820658/

相关文章:

ios - bool 值不正确

python - 从深度嵌套的 JSON 创建 Pandas DataFrame

javascript - 从.use(req,res)更改为使用routes.js文件时,express应用程序出现错误

javascript - Mozilla AFRAME a-frame 通过按钮单击而不是击键启动检查器

javascript - 如何让我的实时 jQuery 搜索在执行搜索之前稍等一下?

PHP JSON 获取键和值

node.js - npm 命令不更新 json

javascript - Photoshop 脚本获取控制位置

javascript - 如何检测 Kendo UI 窗口中哪个按钮触发了事件?

javascript - 如何使用 JSON.parse() 显示正确的值?