2017-09-02 62 views
2

我從c# object創建javascript object並且其中一個屬性是對js function的引用,但是當序列化該對象時,該值具有引號圍繞它,使其成爲普通字符串並且不是功能。 這是當前輸出:C#序列化到JS對象沒有引用一些值

{ "x": "functionNameToBeCalled" } 

但我需要它像

{ "x": functionNameToBeCalled } 

反正是有與Json.Net做到這一點還是我必須創建JS手動反對呢?

我試過使用JsonPropertyAttribute,但無法弄清楚要設置哪個屬性!

+0

手動創建您自己的序列化方法。 – Valkyrie

+1

由於您使用的是Json.NET,這似乎是[如何序列化原始json字段?](https://stackoverflow.com/q/15661529/3744182)的副本。將'[JsonConverter(typeof(PlainJsonStringConverter))]'放在屬性的值應該被序列化爲一個未加引號的原始字符串。 – dbc

回答

1

變化呼喚你的方法,像這樣的方式:

window.z= function(){ console.log('hi');} 
var b = { a: 'z'} 
window[b.a](); 

所以沒有必要改變JSON序列化的行爲。

+0

是的,因爲'{「x」:functionNameToBeCalled}'無效JSON – sniels

+0

不能更改調用者,它的第三方組件。 – Exlord