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