JSON-Schlüssel-Sortierer
Sortieren Sie die Schlüssel jedes Objekts in einem JSON-Dokument alphabetisch, rekursiv — für saubere Diffs und leicht überschaubare Konfigurationen.
913 Aufrufe
Wie es funktioniert
Fügen Sie JSON ein, und die Schlüssel jedes Objekts kommen alphabetisch sortiert zurück. Entscheidend ist, dass diese Sortierung rekursiv ist: Das Tool ordnet nicht nur die Schlüssel des obersten Objekts neu an und hört dann auf — es geht in jedes verschachtelte Objekt hinein, auf jeder Ebene, und alphabetisiert jedes davon unabhängig. Nur die äußerste Ebene zu sortieren würde die innere Struktur eines Dokuments unangetastet lassen, was den Zweck bei allem Komplexeren als einem flachen Objekt zunichtemacht; reales JSON (API-Antworten, Konfigurationsdateien) ist fast immer mehrere Ebenen tief verschachtelt.
Bei der Eingabe {"user":{"zip":"1","name":"A"},"active":true} verschiebt das Tool zum Beispiel nicht nur active vor user auf oberster Ebene — es geht auch in das user-Objekt hinein und vertauscht name vor zip, wodurch {"active":true,"user":{"name":"A","zip":"1"}} entsteht. Arrays bleiben unangetastet: Ihre Elementreihenfolge bleibt exakt erhalten, da die Array-Reihenfolge semantisch bedeutsam ist (Arrays sind per Definition geordnet), während die Reihenfolge von Objektschlüsseln laut JSON-Spezifikation es nicht ist.
Gut zu wissen
Der Hauptanwendungsfall besteht darin, Diffs und Versionskontrollvergleiche aussagekräftig zu machen. Zwei JSON-Dokumente, die identische Daten enthalten, aber mit Schlüsseln in unterschiedlicher Reihenfolge serialisiert wurden, erzeugen beim direkten Vergleich einen riesigen, verrauschten Text-Diff — jede Zeile sieht anders aus, obwohl sich eigentlich nichts geändert hat. Beide zuerst durch diesen Sortierer laufen zu lassen, beseitigt dieses Rauschen: Mit Schlüsseln in derselben alphabetischen Reihenfolge zeigt ein reiner Text-Diff nur echte inhaltliche Änderungen, keine zufällige Neuanordnung. Es ist ebenso nützlich zum manuellen Bearbeiten von Konfigurationsdateien oder um eine unbekannte API-Antwort leichter überschaubar zu machen.
Häufig gestellte Fragen
Ändert dies die Daten oder nur die Reihenfolge?
Nur die Schlüsselreihenfolge ändert sich — Werte, Verschachtelung und Array-Inhalte bleiben unangetastet. JSON-Objekte sind laut Spezifikation ungeordnet, daher ist dies immer eine sichere, nicht brechende Transformation.
Gilt die Sortierung auch für verschachtelte Objekte, oder nur für die oberste Ebene?
Sie ist vollständig rekursiv — jedes Objekt auf jeder Verschachtelungsebene bekommt seine eigenen Schlüssel unabhängig alphabetisiert, nicht nur das äußerste. Nur die oberste Ebene zu sortieren würde innere Objekte in ihrer ursprünglichen, möglicherweise inkonsistenten Reihenfolge belassen.
Was, wenn mein JSON ungültig ist?
Sie erhalten einen klaren Parse-Fehler statt eines stillen Fehlschlags — beheben Sie das angezeigte Syntaxproblem und versuchen Sie es erneut.
Werden auch Arrays sortiert?
Nein — die Reihenfolge der Array-Elemente bleibt exakt erhalten, da Arrays per Definition geordnet sind und eine Neuordnung die Bedeutung verändern würde. Nur Objektschlüssel werden alphabetisiert.
Warum sollte ich JSON-Schlüssel sortieren, bevor ich zwei Dateien vergleiche?
Reine Text-Diff-Tools vergleichen Zeile für Zeile, sodass zwei JSON-Dateien mit identischen Daten, aber unterschiedlich sortierten Schlüsseln in einem Diff fast komplett unterschiedlich aussehen, obwohl sich eigentlich nichts geändert hat. Wenn die Schlüssel beider Dateien auf dieselbe Weise sortiert werden, verschwindet dieses Rauschen, und der Diff zeigt nur echte inhaltliche Änderungen.
Ähnliche Tools
Problem melden
JSON-Schlüssel-Sortierer
Kommentare
Noch keine Kommentare — schreiben Sie den ersten!