Start Debugging
2023-10-22 Aktualisiert 2023-11-05 dotnetdotnet-8 Edit on GitHub

Deep Clone und Deep Equality eines JsonNode

Erfahren Sie, wie Sie die neuen Methoden DeepClone() und DeepEquals() auf JsonNode in .NET 8 für tiefes Klonen und Vergleichen von JSON-Knoten verwenden.

Mit .NET 8 wurden der Klasse JsonNode mehrere neue Methoden hinzugefügt, die beim tiefen Klonen von Knoten und beim Prüfen, ob sie gleich sind, helfen.

public partial class JsonNode
{
    public JsonNode DeepClone();

    public static bool DeepEquals(JsonNode? node1, JsonNode? node2);
}

Die Methode DeepClone() erstellt einen tiefen Klon des aktuellen Knotens samt aller Nachfahren und gibt diesen zurück.

DeepEquals() hingegen vergleicht die Property-Werte des Knotens und aller Nachfahren und gibt nur dann true zurück, wenn ihre JSON-Repräsentationen gleichwertig sind. Interessant zu wissen: DeepEquals ist weder eine Instanzmethode wie etwa Object.Equals(...), noch eine Erweiterungsmethode. Sie können also nicht einfach node1.DeepEquals(node2) schreiben. Sie müssen die statische Methode immer explizit so aufrufen: JsonNode.DeepEquals(node1, node2).

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Zurück