我有一个字符串,如果我将它转换为 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/