2017-09-02 3 views
2

c# objectからjavascript objectを作成していますが、プロパティの1つがjs functionへの参照ですが、オブジェクトをシリアル化するときに値が引用符で囲まれているので、関数ではありません。 これは電流出力です:C#いくつかの値を引用せずに

{ "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

関連する問題