在项目中总会用到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 = ; 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=,name=""});
Console.WriteLine("使用匿名类解析字段:" + obj?.name); Console.ReadLine();
}

 

C#关于反序列化实例时,接收实体字段少于或大于原实体对象 解析测试的更多相关文章

  1. Webservice SOAP传输序列化总结 以及webservice之序列化以及反序列化实例

    一.所有Webservice中传递的对象都必须能够序列化,这个是作为在网络之间传输的必要条件.XML WebService和SOAP标准支持的数据类型如下: 1.基本数据类型. 标准类型,如:int ...

  2. Spring通过注解@Autowired/@Resource获取bean实例时为什么可以直接获取接口而不是注入的类

    问: 这个问题困扰了我好久,一直疑问这个接口的bean是怎么注入进去的?因为只看到使用@Service注入了实现类serviceImpl,使用时怎么却获取的接口,而且还能调用到实现类的方法,难道这个接 ...

  3. Cloud Foundry中DEA启动应用实例时环境变量的使用

    在Cloud Foundry v2中,当应用用户须要启动应用的实例时.用户通过cf CLI向cloud controller发送请求,而cloud controller通过NATS向DEA转发启动请求 ...

  4. MyBatis入门2_增删改查+数据库字段和实体字段不一致情况

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! 当数据库字段和实体bean中属性不一致时 之前数据库P ...

  5. 7、provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错

    在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败.(provider: SQL 网络接口, error ...

  6. Visio 2007中进行数据库建模时如何显示字段类型以及概念名称

    关于在VISIO中进行数据库建模时如何显示字段类型,以及注释的 1 如何显示字段类型:   在visio菜单上--->点击数据库--->选项--->文档    打开后选择表这项,在上 ...

  7. 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子

    一:自定义实现InputFormat *数据源来自于内存 *1.InputFormat是用于处理各种数据源的,下面是实现InputFormat,数据源是来自于内存. *1.1 在程序的job.setI ...

  8. ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取

    前文索引:ASP.NET Core教程[二]从保存数据看Razor Page的特有属性与服务端验证ASP.NET Core教程[一]关于Razor Page的知识 实体字段属性 再来看看我们的实体类 ...

  9. fastjson中对象转化为字符串时过滤某字段

    fastjson中对象转化为字符串时过滤某字段,有两种方法: 一.在该字符定义上方添加"@JSONField(serialize=false)"注解: 二.调用含有Property ...

随机推荐

  1. 【每天一题】LeetCode 0067. 二进制求和

    开源地址:https://github.com/jiauzhang/algorithms 题目描述 * https://leetcode-cn.com/problems/add-binary * 给定 ...

  2. CentOS7安装ffmpeg

    首先在官网http://ffmpeg.org/download.html下载ffmpeg-4.2.1.tar.bz2 以下为安装步骤: 1.使用工具将源码包上传至Linux主机 2.解压源码包 进入该 ...

  3. vivo web service:亿万级规模web服务引擎架构

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ovOS0l9U5svlUMfZoYFU9Q vivo web service是开发团队围绕奇点 ...

  4. druid链接数据库

    所用jar包 commons-beanutils-1.8.0.jarcommons-logging-1.1.3.jardruid-1.0.9.jarmysql-connector-java-5.1.1 ...

  5. DOMContentLoaded vs jQuery.ready vs onload, How To Decide When Your Code Should Run

    At a Glance Script tags have access to any element which appears before them in the HTML. jQuery.rea ...

  6. Dynamics 365利用Web API对视图进行查询

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  7. SAP FI 问题汇总

    记录工作中遇到的问题汇总 1.固定资产折旧码的设置 2.与资产有关的日期 3.如何添加固定资产分类

  8. Android 使用 aapt 命令查看 apk 包名

    一.aapt 是什么 aapt 即Android Asset Packaging Tool,在SDK的build-tools目录下.该工具可以查看,创建, 更新ZIP格式的文档附件(zip, jar, ...

  9. 51-overlay 是如何隔离的?

    不同的 overlay 网络是相互隔离的.我们创建第二个 overlay 网络 ov_net2 并运行容器 bbox3. bbox3 分配到的 IP 是 10.0.1.2,尝试 ping bbox1( ...

  10. 如何在Python中调用打包好的Jar文件?

    首先是在anaconda中进入我这个项目对应的一个环境,然后在这个环境中下载并且安装jpype.那么就可以直接import了.但是这里出现了一系列的问题 第一个问题,getDefaultJVM()报错 ...