当前位置: 首页 > 编程语言 > C#

如何判断两个JSON对象是否相等?分享

时间:2023-04-11 00:39:18 C#

如何判断两个JSON对象是否相等?我试图发现两个JSON字符串是否相等。这是我之前尝试过的varobj1=Json.Decode("{"ValueA":1,"ValueB":2}")varobj2=Json.Decode("{"ValueB":2,"ValueA":1}")//但是这样好像就没有办法比较两个对象了?肯定存在一种优雅而简单的方法来完成我认为是常见的任务吗?另一种比较json的方法——比较JSON和JToken.DeepEqualsJObjecto1=newJObject{{"Integer",12345},{"String","Astring"},{"Items",newJArray(1,2)}};JObjecto2=newJObject{{"Integer",12345},{"String","Astring"},{"Items",newJArray(1,2)}};Console.WriteLine(JToken.DeepEquals(o1,o2));我可以使用下面的代码在某种程度上比较两个JSON。对于原始班级,我在很大程度上能够得到结果。我希望在更多的帮助和调整下,可以使以下内容更健壮new{ValueD="",ValueE=""},//比较工作ValueF=new[]{new{ValueG="",ValueH=""}},//如果数组值乱序则失败ValueI=newSortedDictionary()//比较有效};vart=JsonConvert。DeserializeAnonymousType("{"ValueA":1,"ValueB":2,"ValueC":{"ValueE":2,"ValueD":1},"ValueF":[{"ValueG":10,"ValueH":25}],"ValueI":{"Test1":"Val1","Test2":"Val1"}}",o);varq=JsonConvert。DeserializeAnonymousType("{"ValueB":2,"ValueA":1,"ValueC":{"ValueD":1,"ValueE":2},"ValueF":[{"ValueH":25,"ValueG":10}],"ValueI":{"Test2":"Val1","Test1":"Val1"}}",o);varprop=t.GetType().GetProperties();变量匹配=真;foreach(variteminprop){vartype=item.PropertyType;if(type.IsArray){varv1=item.GetValue(t)asArray;varv2=item.GetValue(q)作为数组;如果((v1!=null&&v2!=null)){if((v1.Length!=v2.Length)){match=false;休息;}for(inti=0;i)item.GetValue(t);varv2=item.GetValue(q)asSortedDictionary;foreach(vararinv1){if(!v2.Contains(ar)){match=false;休息;}}}elseif(!item.GetValue(t).Equals(item.GetValue(q))){varv1=item.GetValue(t);varv2=item.GetValue(q);match=v1.ToString().Equals(v2.ToString());匹配=假;休息;}}if(!match){Console.WriteLine("对象不匹配");您可以使用比较.NET对象库来检查两个对象实例是否相等,它知道如何比较列表、字典等,并向下钻取以比较整个对象图。它还支持对不同事物进行详细报告,并具有您将来可能想要使用的更多功能。以上是C#学习教程:如何判断两个JSON对象是否相等?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: