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


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

 

方案一:直接使用特定對象T,來接受請求數據,不可以嗎? 當然可以,不過當JSON數據包含子對象時,我遇到了子數據對象丟失的問題。如果你們沒有遇到,可以使用。

 

方案二:使用字符串接受JSON格式的字符串數據,然后反序列化成對象,不過這個你需要對字符串進行處理,加反斜杠,如果你不嫌麻煩,可以使用。

 

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

思路:使用dynamic.ToString()方法,得到Json的字符串,然后使用反序列化方法,可以避免方案一的數據丟失問題。好用!!!推薦!!!

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM