让我们引用规范之一-http: //tools.ietf.org/html/rfc7159#section-12
所述的JavaScript对象符号(JSON)数据交换格式规范规定:
JSON是JavaScript的子集,但不包括赋值和调用。
由于JSON的语法是从JavaScript借用的,因此可以使用该语言的“ eval()”函数来解析JSON文本。这通常会构成不可接受的安全风险,因为文本
可能包含可执行代码以及数据声明。同样的考虑也适用于在其他任何编程语言中使用类似eval()的函数,其中JSON文本符合该
语言的语法。
因此,所有说明状态不是JSON标准组成部分的答案都是正确的。
官方的答案是:不,在JSON结果中定义函数是无效的!
答案可能是肯定的,因为“代码就是数据”和“数据就是代码”。即使将JSON用作与语言无关的数据序列化格式,通过其他类型的“代码”隧道也将起作用。
可以使用JSON字符串将JS函数传递到客户端浏览器以执行。
[{"data":[["1","2"],["3","4"]],"aFunction":"function(){return \"foo bar\";}"}]
这导致出现类似的问题:如何“ 执行存储为字符串的JavaScript代码 ”。
准备好提高您的“ eval()是邪恶的”标志,并在其旁边粘贴“请勿通过JSON传递函数”标志。