博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# Dynamic通用反序列化Json类型并遍历属性比较
阅读量:5217 次
发布时间:2019-06-14

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

背景 : 最近在做JAVA 3D API重写,重写的结果需要与原有的API结果进行比较,只有结果一致时才能说明接口是等价重写的,为此需要做一个API结果比较的工具,比较的内容就是Json内容,但是为了实现宽泛的内容相等即只需要字段和值相等即可,不需要字符串严格相等,这种情况下就需要将Json内容字符串转换成具体的对象,出于通用性方面的考虑希望这个工具能比较所有的API结果不单单只是3D的API,所有在反序列化Json字符串时需要一种通用的转换方式,而不是写死的某个类的反序列化,这里介绍的一种思路就是使用dynamic关键字来实现通用反序列化并比较反序列化后的对象是否深度相等即比较对象的各个字段是否相等。深度相等通过两个方法一个字段相等和集合相等,字段相等区分字段名称和字段值是否相等,集合相等则将集合转换成元素,元素再比较字段相等,字段中包含集合的再递归调用实现。

 

代码实例如下:

1.界面

2.异步执行API请求异步返回执行结果,等两个异步方法都返回结果后再做内容比较

3.用Dynamic类型反序列化Json,并实现对象的深度相等

4.源代码:

转载于:https://www.cnblogs.com/hirisw/p/9202163.html

你可能感兴趣的文章
关于Matchvs一些使用心得与建议
查看>>
Gson获取json串中的key-value
查看>>
创建spring boot项目
查看>>
Behave + Selenium(Python) 四
查看>>
系统的横向结构(AOP)
查看>>
linux常用命令
查看>>
有序链表的归并 分类: 链表 2015-06-...
查看>>
A Plug for UNIX 分类: POJ ...
查看>>
寒假作业01
查看>>
Linux常用命令
查看>>
正确适配苹果ATS审核要求的姿势
查看>>
NHibernate.3.0.Cookbook第四章第6节的翻译
查看>>
例1-1
查看>>
Java 8 新特性之 Stream&forEach&map&filter&limit&sorted&统计函数&Collectors&并行(parallel)程序(转)...
查看>>
Windows建立Cucumber和Ruby测试环境
查看>>
HBase中MVCC的实现机制及应用情况
查看>>
马达调速器,直流马达调速器,直流调速器
查看>>
【转】概要设计怎么写
查看>>
前端编码规范小记
查看>>
C#编程(二十五)----------接口
查看>>