发送包含JavaScript函数的JSON数据

时间:2014-07-24 15:45:53

标签: javascript json node.js

我有一个对象,例如:

var object = { name: "lalala", alert: function(){ alert(this.name)} }

我希望将它作为JSON发送到我的服务器(nodejs + express),但是我得到了这个解析器错误,我怎么能这样做?

JSON示例:

{ "name": "lalala", "alert": "function"(){ "alert"("this.name") } }

4 个答案:

答案 0 :(得分:0)

你所拥有的不是有效的JSON对象。你不能在JSON中有一个函数。您正在使用JavaScript对象。查看JSON spec以了解对JSON有效的内容。


如果确实希望将该数据传递到您的服务器,则必须将该值转换为字符串,然后在稍后阶段将其转换为eval( shudder )找回基础功能。

答案 1 :(得分:0)

这种完全奇怪且不适合做JSON的方式

在JSON对象中没有函数

这就是为什么你有解析器错误 ...

答案 2 :(得分:0)

不要这样做。在json中发送警报的值,然后在另一端收到值时运行alert函数。

var object = { name: "lalala", alert: "lalala"}

alert(object.alert);

编辑:事实上你只需要

var object = { name: "lalala"}

收到回复时:

alert(object.name);

答案 3 :(得分:0)

您可以使用以下技巧。

var c = { "s" : "sss", "alert" : "alert(c.s)"}
eval(c.alert);

您将收到提醒。然而,它不会像以下那样飞行:

eval("function(){alert(c.s);}")