gpt4 book ai didi

javascript - JSON.NET 属性作为 Javascript 函数

转载 作者:行者123 更新时间:2023-12-03 11:07:54 24 4
gpt4 key购买 nike

我有一个像这样的 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/

24 4 0
文章推荐: javascript - 如何在 ng-repeat 中使用指令?
文章推荐: javascript - dust js动态@eq条件
文章推荐: javascript - 构造封装 Node.js 请求的函数
文章推荐: javascript -