Javascript C#序列化到JS对象而不引用某些值
我正在从Javascript C#序列化到JS对象而不引用某些值,javascript,c#,json,json.net,Javascript,C#,Json,Json.net,我正在从c#object创建一个javascript对象,其中一个属性是对js函数的引用,但是序列化对象时,该值周围有引号,使其成为普通字符串而不是函数。 这是电流输出: { "x": "functionNameToBeCalled" } 但我需要像这样 { "x": functionNameToBeCalled } 用Json.Net还是必须手动创建js对象 我尝试使用JsonPropertyAttribute,但无法确定要设置哪个属性 更改调用方法的方式,如下所示: window.z=
c#object
创建一个javascript对象
,其中一个属性是对js函数的引用
,但是序列化对象时,该值周围有引号,使其成为普通字符串而不是函数。
这是电流输出:
{ "x": "functionNameToBeCalled" }
但我需要像这样
{ "x": functionNameToBeCalled }
用Json.Net
还是必须手动创建js对象
我尝试使用
JsonPropertyAttribute
,但无法确定要设置哪个属性 更改调用方法的方式,如下所示:
window.z= function(){ console.log('hi');}
var b = { a: 'z'}
window[b.a]();
因此,无需更改json序列化行为。手动创建自己的序列化方法。由于您使用的是json.NET,因此这看起来像是json.NET的副本。将
[JsonConverter(typeof(PlainJsonStringConverter))]
放在其值应序列化为原始无引号字符串的属性上。是的,因为{“x”:functionNameToBeCalled}
无效。JSONcan无法更改调用方,它是第三方组件。