C#关于反序列化实例时,接收实体字段少于或大于原实体对象 解析测试
时间:2019-07-04
本文章向大家介绍C#关于反序列化实例时,接收实体字段少于或大于原实体对象 解析测试,主要包括C#关于反序列化实例时,接收实体字段少于或大于原实体对象 解析测试使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在项目中总会用到son解析,比如RabbitMQ中使用json串解析,比如发过来的实体对象有50个字段,而实际只需要用到里面的几个字段,这时我们创建实体时,只需要创建需要的几个字段即可。
测试实例,首先定义实体
/// <summary> /// 正常实体 /// </summary> public class Person { public Guid ID { get; set; } public string Name { get; set; } public int Age { get; set; } } /// <summary> /// 少一个实体参数 /// </summary> public class DeseriPersonFew { public Guid ID { get; set; } public string Name { get; set; } } /// <summary> /// 多一个实体参数 /// </summary> 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<DeseriPersonFew>(personStr); if (personFew?.Name != null) Console.WriteLine("解析json时,字段少于序列化实体:" + personFew.Name); //解析时 大于原实体字段个数 DeseriPersonMany personMany = JsonConvert.DeserializeObject<DeseriPersonMany>(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
- 深入浅出Redis-Spring整合Redis
- Stream-快速入门Stream编程
- MySQL Regular Expression
- Jenkin-持续集成
- 4.3.4.7 Pattern Matching
- mysql left join、right join、inner join用法分析
- _CrtSetDbgFlag
- UNPv13:#第3章#套接字编程简介
- UNPv13:#第4章#基于TCP套接字编程
- UNPv13:#第5章#TCP客户/服务器程序示例
- MySQL replace用法简介
- YV12转RGB24的计算转换和bmp(dib)文件的显示保存
- 零基础入门深度学习 | 第四章:卷积神经网络
- MySQL binlog日志大小超过限定范围
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 递归回溯--复原IP地址
- 通过 generic-webhook-trigger 插件实时获取 Bitbucket Repository Events
- 初识TypeScript:查找指定路径下的文件按类型生成json
- Xamarin Forms WPF 干掉默认的窗口导航条
- WPF 从零手动创建承载 Xamarin Forms 项目
- 帝都房价回调?带你用Python了解北京二手房市场现状
- Zabbix 利用 ncat 监控远端端口状态
- MySQL“被动”性能优化汇总!
- H3C WA2610i-GN 无线AP FAT 配置案例
- java强引用、软引用、弱引用、虚引用以及FinalReference
- 读源码——JDK动态代理
- 图解红黑树
- 算法——递归
- LeetCode 94 | 基础题,如何不用递归中序遍历二叉树?
- 读源码——cglib动态代理