需求场景:有时候咱们抓到一段请求数据,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; }