2016-06-15 4 views
0

私はaws lambdaのapiリクエストテンプレートを使用して、postメソッドを作成し呼び出します。私は自分のコードからポスト本体を送る必要があります。これはjsonのシリアル化が必要です。ここでDynamic JsonParsingの代替手段

は、私は今それをやっている方法です。

**dynamic pObj = new JObject(); 
pObj.Url = DownloadURL; 
pObj.Name = IName; 
pObj.ID = I.ID;** 

Custom redirect = new Custom() 
{ 
    url = new Uri(lambdaEndpoint), 
    **Body = pObj.ToString(),** 
    Method = "POST", 
    Available = true 
}; 

しかし、私はそれがdynamicキーワードを使用してパフォーマンスの問題について語っarticleをお読みください。

これを実行する代わりに、パフォーマンスが優れている方法がありますか?どんな助けもありがとう。

おかげ

+0

...あなたはいつも手動でそれをデシリアライズするために動的オブジェクトを作成するために必要とせず、JSON文字列を構築することができます –

+0

jsonを共有できますか? – aloisdg

+0

@aloisdg私のjsonはとてもシンプルです。ここにあります。 {"Url": "xyz.com"、 "名前": "abc"、 "ID": "123"} – Atihska

答えて

0

dynamicの使用に代わるものは、直接のデシリアライズだろう。あなたはあなたのオブジェクトを知っているので、期待どおりに収まるはずです。

Demo

using System; 
    using Newtonsoft.Json; 


    public class Program 
    { 
     // create you class. You can generate it with http://json2csharp.com/ or use Visual Studio (edit>past special) 
     public class Custom 
     { 
      public string Url { get; set; } 
      public string Name { get; set; } 
      public string Id { get; set; } 
     } 

     public void Main() 
     { 
      string json = "{ \"Url\":\"xyz.com\", \"Name\":\"abc\", \"ID\":\"123\" }"; 
      // the magic code is here! Go to http://www.newtonsoft.com/json for more information 
      Custom custom = JsonConvert.DeserializeObject<Custom>(json); 

      // custom is fill with your json! 
      Console.WriteLine(custom.Name); 
     } 
    } 

出力:「ボディ」痛みのテキストを受け入れている場合

abc