zoukankan      html  css  js  c++  java
  • 动态类型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;
            }
  • 相关阅读:
    PHP中文字符串编码转换
    html表单样式, table隔行高亮, 长字符串自动换行
    PHP带重试功能的curl
    redis+crontab+php异步处理任务
    emoji表情初探
    iptables进行DNAT(目标地址转换)
    Linux作为路由器(一)
    nginx正向代理http(一)
    Linux Shell sort排序常用命令(转载)
    Zabbix添加自定义监控项(一)
  • 原文地址:https://www.cnblogs.com/lxhbky/p/11053024.html
Copyright © 2011-2022 走看看