我個人推薦:使用dynamic類型先接受數據,然後再轉換成T對象,比較方便,實用,下麵是關鍵代碼: 思路:使用dynamic.ToString()方法,得到Json的字元串,然後使用反序列化方法,可以避免方案一的數據丟失問題。好用!!!推薦!!! ...
需求場景:有時候我們抓到一段請求數據,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; }