0
我有下面的JSON(被剪下的空间),你可以在“测试”和“工具提示”中看到我有一个属性需要包含一个函数“formatter”(注意这个JSON是从XML读入的文件,并在.NET转换成JSON)函数 - 可能吗?
{
"test": {
"formatter": function(){return '<b>'+ this.point.name +'<\/b>: '+ this.y +' %';}
},
"title": {
"align": "center",
"text": "Your chart title here"
},
"tooltip": {
"formatter": function(){return '<b>'+ this.point.name +'<\/b>: '+ this.y +' %';}
}
}
不幸的是,我产生了JSON文件的ASPX页面上收到一条错误
There was an error parsing the JSON document. The document may not be well-formed.
这个错误是由于该位之后“格式化程序”不在引号中,因为它认为它是一个字符串。但如果我在它周围放置一个字符串,那么使用JSON的前端HTML页面将不会看到该函数。
是否可以将此函数作为函数传递而不是字符串?
非常感谢。
编辑:
感谢您的快速回信。正如我所说,我知道上述不正确的JSON,因为“function(){...}”部分不在引号中。读取JSON文件的前端是第三方,所以我想知道如何通过该函数,我了解注入(从SQL的角度来看)的问题,并理解为什么它不可能在JSON中JSON之前)。
对我来说看起来不像是有效的json。 Json只是javascript的一个子集,而函数定义不是该子集的一部分。详细信息请查看json规范。 – CodesInChaos 2011-05-06 11:36:37
JSON的重点在于它是一种不能包含可执行代码的数据格式。这是为了防止脚本注入攻击。 – 2011-05-06 11:37:55
如有疑问,请使用http://jsonlint.com进行验证。 – Xion 2011-05-06 11:38:08