包含函数的JSON

Mp *_*ega 4 javascript ajax json function

我有一个网站,返回类似JSON的数据结构,如下所示:

{
    "name":"tom jones",
    "no": 123,
     "storedproc": function(){
                      callbuyer(0123);
                    }
}
Run Code Online (Sandbox Code Playgroud)

我使用$.ajax()dataType"JSON" 获取此数据.不幸的是,我$.ajax()调用错误回调,因为我的数据包含一个函数().我该如何正确解析?我真的需要将函数存储在变量中并稍后调用它.

Ray*_*oal 7

这根本就不是合法的JSON(正如您所知的那样给出了问题的标题)请参阅正式的JSON语法.真正的JSON的好处是可以使用JSON.parse哪个安全地包装一个eval调用.

虽然eval可以使用,但我建议您重新访问应用程序的体系结构,并找到其他方法来执行您要执行的操作.

特别是,我会在服务器返回的0123唯一的,并让你的客户保持,让它知道,在某些情况下,它的功能应用逻辑(在此情况下,该功能会callbuyer).

这应该有效,因为你说你想要调用函数,这是后者的值storedproc.由于此函数的主体包含callbuyer对它的调用,因此客户端脚本知道它是什么callbuyer.诀窍在于您的服务器不会发回任意的,无约束的函数,而是客户端可以利用它对整个应用程序的知识以某种方式利用的数据.

  • 是的,您可以不使用“eval”来编写它们,也可以使用“eval”来编写它们。Crockford 在这里使用它:https://github.com/douglascrockford/JSON-js/blob/master/json2.js (2认同)