我有两个json文件。不管元素的格式和顺序如何,它们应该是相同的。
例如,这两个jsons是等价的,因为属性和数组是相同的,只有它们的顺序和格式类型不同:
{
"type" : "integer",
"values": [
{
"value": 1
},
{
"value": 2
}
]
}
和
{
"values": [
{ "value": 1 }, { "value": 2 }
],
"type" : "integer"
}
如果我将它们存储在两个单独的字符串中,然后比较它们,显然比较会说它们是不同的。相反,我想从语义角度检查它们是否相等,因为它们具有相同的属性,并且各自的数组是相同的。
如果我将这两个json存储在两个单独的字符串中,那么C#中是否有检查这两个json是否等效的方法?
发布于 2017-04-17 10:01:51
使用Newtonsoft.Json nuget包的DeepEquals:
using Newtonsoft.Json.Linq;
var jsonText1 = File.ReadAllText(fileName1);
var jsonText2 = File.ReadAllText(fileName2);
var json1 = JObject.Parse(jsonText1);
var json2 = JObject.Parse(jsonText2);
var areEqual = JToken.DeepEquals(json1, json2);
发布于 2017-04-17 10:15:50
https://stackoverflow.com/questions/43442432
复制相似问题