Zwei JSON-Eingaben vergleichen und strukturelle Unterschiede erkennen
Vergleichen Sie zwei gültige JSON-Eingaben, um die Übereinstimmung ihrer geparsten Strukturen zu prüfen. Bei Abweichungen nennt das Ergebnis die festgestellten Strukturunterschiede und ihre Anzahl.
Wofür der Strukturvergleich geeignet ist
Dieses Werkzeug ist für den strukturellen Vergleich von zwei JSON-Eingaben gedacht. Es betrachtet nicht die Darstellung als reinen Text, sondern verarbeitet gültige JSON-Daten und vergleicht die daraus entstandenen Strukturen. Dadurch lassen sich Abweichungen in verschachtelten Objekten und Arrays gezielt einordnen.
Die beiden Felder nehmen optionale Texte entgegen, die JSON enthalten können. Sie können daher zunächst eine einzelne Eingabe vorbereiten oder zwei Datenstände gegenüberstellen. Für eine belastbare Aussage über die Übereinstimmung sollten jedoch beide Felder einen nicht leeren, gültigen JSON-Inhalt enthalten.
Besonders hilfreich ist der Vergleich, wenn Sie zwei Versionen einer Konfiguration, einer Antwort oder eines anderen strukturierten Datenbestands prüfen möchten. Das Ergebnis weist auf betroffene Eigenschaften, Werte oder Array-Bereiche hin, ersetzt aber nicht Ihre Entscheidung darüber, welche Daten fachlich richtig sind.
So führen Sie den Vergleich durch
- Bereiten Sie zwei Datenstände vor, die Sie miteinander abgleichen möchten. Achten Sie darauf, dass jede Eingabe als JSON gedacht ist und nicht lediglich eine frei formatierte Textdatei darstellt.
- Fügen Sie den ersten Inhalt in das erste Textfeld ein. Die Eingabe darf beispielsweise ein Objekt mit mehreren Eigenschaften oder ein Array mit verschachtelten Elementen enthalten.
- Übertragen Sie den zweiten Inhalt in das zweite Textfeld. Verwenden Sie möglichst die beiden Fassungen, deren Struktur und Werte Sie unmittelbar gegenüberstellen möchten.
- Starten Sie den Vergleich über die dafür vorgesehene Steuerung. Beide Felder sind optional; ein nicht ausgefülltes Feld führt deshalb nicht zu einer fehlenden Eingabeaufforderung.
- Prüfen Sie zuerst, ob der Vorgang erfolgreich war. Enthält mindestens ein Feld sichtbaren Inhalt, der nicht als JSON gelesen werden kann, erhalten Sie einen nicht erfolgreichen Status mit Informationen zum Parsing-Fehler. In diesem Fall korrigieren Sie die Syntax und führen den Vergleich erneut aus.
- Enthalten beide Felder gültiges JSON mit mehr als ausschließlichem Leerraum, lesen Sie die Aussage zur Identität der geparsten Strukturen. Kontrollieren Sie anschließend die aufgeführten Abweichungen und deren Anzahl, sofern Unterschiede festgestellt wurden.
- Ordnen Sie die einzelnen Hinweise nach ihrer Art. Eine hinzugefügte oder entfernte Objekteigenschaft verändert den Aufbau eines Objekts. Ein geänderter Wert betrifft eine vorhandene Stelle, während eine andere Array-Länge auf eine abweichende Anzahl von Elementen hinweist.
- Sehen Sie bei Arrays zusätzlich auf Unterschiede in den entsprechenden Positionen. Zwei Listen können beispielsweise dieselbe allgemeine Form besitzen, während ein Element an einer bestimmten Stelle einen anderen Wert oder eine andere verschachtelte Struktur enthält.
- Öffnen Sie danach die betroffenen Stellen in Ihren Ausgangsdaten und prüfen Sie den fachlichen Zusammenhang. Der Vergleich zeigt die festgestellten Abweichungen an; er wählt keine bevorzugte Fassung aus und erzeugt weder eine Zusammenführung noch einen Patch.
Was die Ausgabe aussagt
Ein erfolgreiches Ergebnis beantwortet zunächst die Frage, ob die geparsten Eingaben identisch sind. Falls Abweichungen vorhanden sind, ergänzt die Ausgabe diese Aussage um die Zahl der festgestellten Unterschiede. Die Struktur der Hinweise hilft Ihnen dabei, zwischen einer fehlenden Eigenschaft, einem zusätzlichen Feld, einem veränderten Wert und einer Abweichung innerhalb eines Arrays zu unterscheiden.
Eine gleiche Anzahl von Eigenschaften reicht für eine Übereinstimmung nicht aus. Auch Werte innerhalb verschachtelter Objekte und die Reihenfolge entsprechender Array-Positionen können zum Ergebnis beitragen. Lesen Sie deshalb nicht nur die Gesamtzahl, sondern prüfen Sie die jeweils genannten Stellen in ihrem umgebenden Objekt oder ihrer Liste.
Leere Texte und Inhalte, die nur aus Leerzeichen bestehen, werden gesondert behandelt. Der Vorgang endet in diesem Fall erfolgreich und meldet keine Unterschiede, kennzeichnet die Eingaben aber zugleich als nicht identisch. Dieses Ergebnis ist kein Nachweis dafür, dass zwei vollständige JSON-Datenstände übereinstimmen.
Ein nicht erfolgreicher Status mit Parsing-Informationen weist dagegen auf ein Problem beim Lesen eines nicht leeren Inhalts hin. Beheben Sie zunächst die JSON-Syntax, bevor Sie strukturelle Hinweise auswerten. Die Ausgabe beschreibt Unterschiede, nimmt Ihnen jedoch weder die fachliche Bewertung noch die Wahl einer Korrektur ab.
Praktisches Beispiel
Sie prüfen zwei Versionen einer JSON-Konfiguration, nachdem sich ein Objektwert und die Länge einer enthaltenen Liste geändert haben.
Sie fügen zuerst ein Objekt mit einem Wert und einer zweielementigen Liste ein, danach eine zweite Fassung mit geändertem Objektwert und verlängerter Liste, und starten den Vergleich.
Das erfolgreiche Ergebnis kennzeichnet die beiden Eingaben als nicht identisch, nennt eine Anzahl festgestellter Unterschiede und führt die betroffenen strukturellen Abweichungen auf.
Einschränkungen
- Leerer oder ausschließlich aus Leerzeichen bestehender Inhalt liefert keine gemeldeten Unterschiede, während nicht parsebarer nicht leerer Inhalt zu einem nicht erfolgreichen Ergebnis mit Parsing-Informationen führt.
Häufige Fehler
- Wenn ein nicht leerer Inhalt wegen eines JSON-Syntaxfehlers nicht gelesen werden kann, entsteht kein erfolgreicher Strukturvergleich. Prüfen Sie dann zuerst Trennzeichen, Anführungszeichen und die gültige JSON-Form, bevor Sie den Vorgang erneut starten.
Häufige Fragen
Werden verschachtelte Objekte und Arrays berücksichtigt?
Ja, sofern beide Felder gültiges JSON enthalten, das nicht nur aus Leerzeichen besteht. Dann bezieht der Vergleich verschachtelte Objekte ebenso wie Arrays ein.
Wie wird die Zahl der Unterschiede angezeigt?
Die Ausgabe ergänzt den Hinweis auf die Identität der geparsten Eingaben um eine Anzahl, wenn sie Unterschiede feststellt. Ohne gefundene Abweichungen wird keine solche Differenzanzahl benötigt.
Gelten leere Eingaben als identisch?
Nein, nicht im Sinn zweier übereinstimmender JSON-Datenstände. Bei leerem oder ausschließlich aus Leerzeichen bestehendem Inhalt ist der Vorgang zwar erfolgreich und weist keine Unterschiede aus, die Eingaben gelten jedoch als nicht identisch.