2016-04-11 8 views
0

現在、この醜いコードを使用して、JObjectにキー/値ペア(Dictionairyに保持されている)を追加しています。それは子供として、しかし兄弟としてそれらを追加しません。コードはうまく動作しますが、子ノードとして追加された場合はよりクリーンになります。 (シリアライズするJSON.NETを使用するSignalRを介して動的オブジェクトを送信する)、私の特定のニーズにJSON.NET JObjectに子としてキー/値を動的に追加する

public void trigger(dynamic e ,Pairs extras) 
    { 
     if (Post != null) 
     { 
      foreach (KeyValuePair<string, object> entry in extras) 
      { 
       Newtonsoft.Json.Linq.JValue val = new Newtonsoft.Json.Linq.JValue(entry.Value); 
       e.Add(entry.Key, val); 
      } 
      Post(this, e); 
     } 
    } 
+0

*まあコードは*作品 - そして、何してくださいあなたの質問があり、あなたはどのような問題を持っていますか? – dbc

+0

私はノードの兄弟を挿入するのではなく、子を挿入します。しかし、私は問題があった.AddFirst() –

+0

*ノードの兄弟を挿入したくない* - どのノード、 'e'? ['e.Add(string、JToken)'](http://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JObject_Add.htm)は、指定されたプロパティを 'e'の最後の子として追加します。確かに私はあなたが意味することを知っている。あなたが持っている入力JSONの[example](https://stackoverflow.com/help/mcve)を作成し、結果として何を得たいのですか? – dbc

答えて

0

(動的オブジェクトE、jオブジェクトを保持しています)。私はより簡単な解決策を見つけました。

私の問題は、JSON.NETがJTOKENを作成していて、さらにデータを追加しようとしていた、ダイマニック・シール・クラスがあることでした。 e.Add(string、JTOKEN)を実行すると、2番目の子ツリーが作成されていました。それは醜いものでした。私の解決策は今で見つけることができます

can one convert a dynamic object to an ExpandoObject (c#)