zoukankan      html  css  js  c++  java
  • C#序列化和反序列化 之 dynamic 动态Json的反序列化

     序列化和反序列化的常识不再赘述,如果不清楚这个,可以 参考一下其他人写的文章https://www.cnblogs.com/maitian-lf/p/3670570.html

    总结的说,

    序列化 是把内存对象 转变成 二进制流/xml/json 等格式,保存起来或者用来传输

    反序列化 是把 二进制流/xml/json 等的内容,转变回 内存对象。

    以JSON为列,大多数的反序列化代码类似这样

    
    
        class Student
        {
            public int Id { get; set; }
            public string Name { get; set; }
    
    
            public void Test()
            {
                string studentJson = JsonConvert.SerializeObject(this);
    
                JsonConvert.DeserializeObject<Student>(studentJson);
            }
        }
    
    
    
      当你执行反序列化的时候,你必须定义一个Json格式对应的类。
    
    {"Id":1,"Name":"csszbb"} 对应与Student  ,大多数人的代码如上,会取定义一个Student类。
    
    那么问题来了,如果 JSON 串的格式是动态的那?
    第一次可能是{"Id":1,"Name":"csszbb"}
    第二次可能是{"Id":1,"Name":"csszbb""Weight"120}
    
    第三次。第四次。字段有可能发生变化。如果不改Student类的定义,上述代码是会报错的。那我们怎么办?
    
    在JAVAScript种,对象是动态类型的,任何类型的json串,都可以Json.payse(xxx) 转化成 JSP的对象。非常方便.因为jsp的对象是支持动态添加属性的。不需要像C#那样,预先定义一个类
    
    那么C#种有没有类似的东西那 ?答案是有的  dynimic 关键字  基础常识学习可以看下这篇文章 https://www.cnblogs.com/gygtech/p/9915367.html
    
    
    

    
    

     上述代码是完全可行的。







  • 相关阅读:
    Python 一条语句如何在多行显示的问题
    代理模式
    MySQL workbench中的PK,NN,UQ,BIN,UN,ZF,AI说明
    异步加载 Echarts图的数据
    Web页面中两个listbox的option的转移
    半透明效果
    在地图上使图片透明
    加载图片方式
    获取鼠标坐标
    画笔与画刷
  • 原文地址:https://www.cnblogs.com/CSSZBB/p/13879390.html
Copyright © 2011-2022 走看看