动态类型dynamic转换为特定类型T的方案
程序员文章站
2022-05-13 21:05:21
我个人推荐:使用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; }