我有一个像这样的 C# 类
public class Person
{
string firstname {get; set;}
string lastname {get; set;}
string onRenderFunction {get; set;}
}
然后我像这样设置类:
var superman = new Person
{
firstname = "Clark",
lastname = "Kent",
onRenderFunction = "renderPersonComplete"
}
我想要的是将“onRenderFunction”序列化为方法 - 而不是字符串。像这样;
{
"firstname": "Clark",
"lastname": "Kent",
"onRenderFunction": renderPersonComplete
}
因此,当通过 Ajax 调用返回序列化对象并将其提供给能够调用函数“onRenderFunction”的插件时,该插件将看到该函数已设置并调用如下所示的函数设置:
var renderPersonComplete = function() {
alert('do something on render complete');
};
如何设置 JSON.NET 来序列化 Person 类来执行此操作?
最佳答案
您必须进行一些额外的处理才能将函数分配给属性,因为 JSON 根据定义只是基元的键值对,它不知道函数。
最初,来自 ajax 的数据将如下所示:
var data = {
"firstname": "Clark",
"lastname": "Kent",
"onRenderFunction": "renderPersonComplete"
}
假设您在 window
范围内有一个名为 renderPersonComplete
的函数:
window.renderPersonComplete = function() {
alert('do something on render complete');
};
现在您必须修改数据才能分配函数:
data.onRenderFunction = window[data.onRenderFunction] // This assigns the function to onRenderFunction property.
该函数的名称由服务器端根据您的逻辑决定。
关于javascript - JSON.NET 属性作为 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27757135/