zoukankan      html  css  js  c++  java
  • Dynamic系列--Dynamic 与反序列化

    通常在调用其他站点的api时,如果返回的结果为 json数据,而我们又不想再重新定义实体类时,可以使用dynamic类型。
    但是有以下需要注意的地方。

    • 当内容为空时,反序列化结果为null
    • 当内容格式有误,不可反序列化时,将会抛出异常。
    • 内容正确时,得到的对象是 Dictionary<string,object> ( 为什么不是真正的dynamic,这里究竟发生了什么?需要后期研究 )
    • 如果是数组,则得到的对象是 object[] 每个object为Dictionary<string,object>。

    且看如下代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web.Mvc;
    using System.Web.Script.Serialization;
    
    namespace ConAppTestJavaScriptSerilazation
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                //反序列化 返回结果为 object  真是类型是Dictionary<string,object>
                var content0 = @"{name:'cjt',age:10}";
                var res0 = new JavaScriptSerializer().Deserialize<dynamic>(content0);
    
                //反序列化 返回结果为 object[] 每个object实际上是一个Dictionary<string,object>类型
                var content1= @"[
                                    {name:'cjt',age:10},
                                    {name:'cjt2',age:21},
                                    {name:'cjtc',age:16}
                                ]";
                var res1 = new JavaScriptSerializer().Deserialize<dynamic>(content1);
    
    
                //当内容为空时,反序列化返回结果为NULL
                var content2 = "";
                var res2 = new JavaScriptSerializer().Deserialize<dynamic>(content2);
    
                Console.ReadLine();
            }
        }
    }
    
  • 相关阅读:
    VS2017专业版和企业版激活密钥
    RabbitMQ卸载重新安装
    RabbitMQ-基本命令操作
    天猫
    铜氨纤维
    四肢很发达,头脑不简单
    运动可以健身健脑
    1 职业天花板来自认识的局限性
    天猫-服饰行业标准
    服装设计都是需要什么
  • 原文地址:https://www.cnblogs.com/linecheng/p/4577282.html
Copyright © 2011-2022 走看看