检查两个json是否相同

Jep*_*sen 4 c# json

我有两个json文件.无论元素的格式和顺序如何,它们应该是相同的.

例如,这两个jsons是等价的,因为属性和数组是相同的,只有它们的顺序和格式类型是不同的:

{
  "type" : "integer",
  "values": [
    {
      "value": 1
    },
    {
      "value": 2
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

{
  "values": [
    { "value": 1 }, { "value": 2 }
  ],
  "type" : "integer"
}
Run Code Online (Sandbox Code Playgroud)

如果我将它们存储在两个单独的字符串中并进行比较,显然比较会说它们是不同的.相反,我想从语义的角度检查它们是否相等,它们是因为它们具有相同的属性,并且各自的数组是相同的.

如果我将它们存储在两个单独的字符串中,那么在C#中是否有办法检查这两个json是否相同?

Ern*_*rno 6

使用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);
Run Code Online (Sandbox Code Playgroud)