包含函数调用的json字符串
json string containing function calls
例如,我的json字符串如下:
{
"v1" : [],
"v2": 2,
"v3": f()
}
现在,我需要解码的上下文有一个f
的定义,f()
在该上下文中给出了正确的答案(通过调试器检查)。但是JSON.parse(jsonstring)
给了我Unexpected token
。CCD_ 5也给出了误差。我该怎么办?
请参阅此处的示例
为什么它不起作用
看看JSON的定义,它不能包含函数调用。
可能的解决方案
一种方法是这样做,返回要调用的函数的字符串。
{
"v1" : [],
"v2": 2,
"v3": "f"
}
现在,当您需要访问它时,您可以调用该函数。
var myJSON = JSON.parse(jsonstring);
var myFunctionResult = window[myJSON.v3](); //works if global variable
另一种选择是更改代码的工作方式,并进行异步脚本调用[jQuery将是getScript
,常规JavaScript createElement("script")
和appendChild()
,并像JSONP那样使用回调。
JSON字符串不能包含函数。
JSON与JavaScript对象不同,尽管前者是从后者派生而来的。归根结底,它是一根绳子。
您不应该在JSON中使用任何回调或函数调用(它不是有效的JSON,不安全,而且很荒谬——如果您以某种方式使其工作,最后两件事是),在脚本中总是有办法做到这一点的。
编辑:你真的不需要从JSON调用函数-请返回"绘图板"和设计应用程序,不要使用这种模式
相关文章:
- 如何使用JSON字符串中的jQuery填充下拉框
- Json字符串可以'当字符串末尾有“'时,t解码;
- 使用JSON文件中的变量(字符串)填充文本区域
- 将JSON转换为typescript中的字符串数组
- jquery从2个json字符串构建一个复选框表单
- RegEx只匹配JSON字符串中最里面的数组
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 通过字符串获取JSON对象
- 获取JSON并使用Javascript解析为字符串
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- javascript数组到字符串JSON
- 角度拆分字符串 json
- 跨域 AJAX 调用返回字符串 JSON,而不是 JSON 对象
- 如何在js或jQuery中获取长度字符串json
- 字符串JSON引用名称,而不是被引用的对象
- 子字符串JSON键
- 将字符串JSON转换为多维JavaScript数组
- 字符串json具有空值
- 将html字符串(json表示)转换为实际的javascript对象
- PHP 存储字符串 JSON 与 JavaScript 不同