動態類型dynamic轉換爲特定類型T的方案

需求場景:有時候咱們抓到一段請求數據,JSON格式的字符串數據,須要放在接口裏重現問題,咱們就可能會用dynamic先接受數據,而後再轉換成特定數據發出請求。加密

 

方案一:直接使用特定對象T,來接受請求數據,不能夠嗎? 固然能夠,不過當JSON數據包含子對象時,我遇到了子數據對象丟失的問題。若是大家沒有遇到,能夠使用。spa

 

方案二:使用字符串接受JSON格式的字符串數據,而後反序列化成對象,不過這個你須要對字符串進行處理,加反斜槓,若是你不嫌麻煩,能夠使用。code

 

方案三:我我的推薦:使用dynamic類型先接受數據,而後再轉換成T對象,比較方便,實用,下面是關鍵代碼:對象

思路:使用dynamic.ToString()方法,獲得Json的字符串,而後使用反序列化方法,能夠避免方案一的數據丟失問題。好用!!!推薦!!!blog

 

/// <summary>
        ///  模擬請求
        /// </summary>
        /// <param name="fromBody">接收響應結果爲加密以後的值</param>
        /// <returns>獲得解密以後返回的響應結果值</returns>
        [HttpPost]
        public HttpResponseMessage Test(dynamic fromBody)//dynamic JObject
        {
            string a = fromBody.ToString();
            T t=  Newtonsoft.Json.JsonConvert.DeserializeObject<T>(a);

            return result;
        }
相關文章
相關標籤/搜索