动态类型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;
        }
相关文章
相关标签/搜索