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
    
    
    

    
    

     上述代码是完全可行的。







  • 相关阅读:
    用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql
    用sqoop将mysql的数据导入到hive表中
    windows下启动mysql服务的命令行启动和手动启动方法
    使sqoop能够启用压缩的一些配置
    简易安装sqoop
    sqoop一些语法的使用
    mysql 视图
    MySQL 函数大全及用法示例
    MySQL 触发器 -1
    MySQL 函数
  • 原文地址:https://www.cnblogs.com/CSSZBB/p/13879390.html
Copyright © 2011-2022 走看看