Dynamic JsonParsing的替代品

时间:2016-06-15 18:47:44

标签: c# dynamic aws-lambda jsonserializer

我正在使用aws lambda的api请求模板来创建和调用post方法。我必须从我的代码中发送一个帖子正文,它应该是json序列化的。

这是我现在正在做的一种方式:

**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
 };

但我读了article,其中讨论了使用动态关键字的性能问题。

是否有其他方法可以做到性能更好?任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分: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