博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#关于反序列化实例时,接收实体字段少于或大于原实体对象 解析测试
阅读量:7040 次
发布时间:2019-06-28

本文共 1735 字,大约阅读时间需要 5 分钟。

  在项目中总会用到son解析,比如RabbitMQ中使用json串解析,比如发过来的实体对象有50个字段,而实际只需要用到里面的几个字段,这时我们创建实体时,只需要创建需要的几个字段即可。

  测试实例,首先定义实体

///     /// 正常实体    ///     public class Person    {        public Guid ID { get; set; }        public string Name { get; set; }        public int Age { get; set; }    }    ///     /// 少一个实体参数    ///     public class DeseriPersonFew    {        public Guid ID { get; set; }        public string Name { get; set; }    }    ///     /// 多一个实体参数    ///     public class DeseriPersonMany    {        public Guid ID { get; set; }        public string Name { get; set; }        public int Age { get; set; }        public int Sex { get; set; }    }

  实体解析测试,可以创建解析实体,也可以不创建实体对象,直接使用匿名类解析

static void Main(string[] args)        {            Console.WriteLine("Hello World!");            // NewMethod();            Person p = new Person();            p.ID = Guid.NewGuid();            p.Name = "zhangsan";            p.Age = 13;            string personStr = JsonConvert.SerializeObject(p);            //字段少于序列化实体            DeseriPersonFew personFew = JsonConvert.DeserializeObject
(personStr); if (personFew?.Name != null) Console.WriteLine("解析json时,字段少于序列化实体:" + personFew.Name); //解析时 大于原实体字段个数 DeseriPersonMany personMany = JsonConvert.DeserializeObject
(personStr); if (personMany?.Name != null) Console.WriteLine("解析json时,字段多于序列化实体:" + personMany.Name); //使用匿名类解析 var obj= JsonConvert.DeserializeAnonymousType(personStr,new { age=0,name=""}); Console.WriteLine("使用匿名类解析字段:" + obj?.name); Console.ReadLine(); }

 

  

 

转载于:https://www.cnblogs.com/personblog/p/11134547.html

你可能感兴趣的文章
【Oracle】Current online Redo 和 Undo 损坏的处理方法
查看>>
TLTagsControl
查看>>
Linux内核中SPI总线驱动分析
查看>>
Java8中CAS的增强
查看>>
C语言之将无符号字符型转化为ascii码值
查看>>
maven2完全使用手册
查看>>
SQL应用与开发:(一)导论和环境
查看>>
简单封装quartz实现任务调度的配置和管理
查看>>
Android Matrix详解
查看>>
JVM 堆栈区域数据存放流程
查看>>
【MyBatis框架】配置文件-resultMap总结
查看>>
JSP生成验证码
查看>>
浏览器的窗口位置和大小
查看>>
Path实现常见toolbar点击弹出菜单效果
查看>>
AAC架构系列三(生命周期感知组件)
查看>>
Webpack 中 css import 使用 alias 相对路径
查看>>
vue router-view 切换路由默认不触发钩子函数
查看>>
都 9012了,该选择 Angular、React,还是Vue?
查看>>
JavaScript 文件对象详解
查看>>
一个可缩放的图片预览vue插件
查看>>