using System.Text.Json.Nodes;
public static class Extensions
public static bool DeepEquals(JsonNode x, JsonNode y)
return DeepEquals(x.AsValue(), y.AsValue());
return DeepEquals(x.AsObject(), y.AsObject());
return DeepEquals(x.AsArray(), y.AsArray());
Console.WriteLine("ree");
public static bool DeepEquals(JsonValue x, JsonValue y)
return x.ToString() == y.ToString();
public static bool DeepEquals(JsonArray x, JsonArray y)
if (x.Count != y.Count) return false;
for (int i = 0; i < x.Count; i++)
if (!DeepEquals(x[i], y[i])) return false;
public static bool DeepEquals(JsonObject x, JsonObject y)
if (x.Count != y.Count) return false;
foreach (var (key, value) in x)
if (!y.ContainsKey(key)) return false;
if (!DeepEquals(value, y[key])) return false;
public static void Main()
var x = JsonNode.Parse("{ \"hi\": {\"date\":\"2021-09-18\",\"venueId\":\"342\",\"environment\":\"Dev\",\"race\":1}}");
var y = JsonNode.Parse("{\"hi\": {\"date\":\"2021-09-18\",\"environment\":\"Dev\",\"venueId\":\"342\",\"race\":1}}");
Console.WriteLine(Extensions.DeepEquals(x, y));