JSON ohne Berücksichtigung der Schlüsselreihenfolge vergleichen

Zwei JSON-Objekte können gleichwertig sein, auch wenn ihre Eigenschaften in anderer Reihenfolge stehen. Ein Textvergleich markiert diese harmlose Neuordnung als Änderung; ein semantischer Vergleich nicht.

Objekte und Arrays folgen unterschiedlichen Regeln

Die Reihenfolge von Objekteigenschaften hat keine semantische Bedeutung, daher werden Eigenschaften nach Namen zugeordnet. Bei Arrays ist die Reihenfolge meist bedeutungsvoll; Werte bleiben mit ihrem Index verknüpft, sofern die Anwendung keine andere Identitätsregel definiert.

Werte in stabile Pfade zerlegen

Pfade wie $.kunde.adresse.stadt oder $.artikel[2].preis bilden eine stabile Koordinate für jeden primitiven Wert. Der Vergleich dieser Koordinaten zeigt Ergänzungen, Entfernungen und Wertänderungen ohne Rauschen durch Einrückung oder Schlüsselreihenfolge.

  1. Parsen Sie zuerst beide Dokumente.
  2. Sortieren Sie Objektschlüssel deterministisch.
  3. Bewahren Sie Arrayindizes.
  4. Vergleichen Sie den Wert an jedem resultierenden Pfad.

Erkennen Sie notwendigen Vorverarbeitungsbedarf

Erzeugte Zeitstempel, Anfrage-IDs und ungeordnete Arrays benötigen eventuell eine ausdrückliche Ignorier- oder Sortierregel. Wenden Sie diese Regeln vor dem Vergleich an und dokumentieren Sie sie; andernfalls ist das Ergebnis nicht reproduzierbar.

Von Grund auf privat

Läuft in Ihrem Browser

Dateien werden nie hochgeladen

Funktioniert ohne Konto