JSON sortieren

Kostenloses Online-Tool zum Sortieren von JSON. Mit einem Klick Objekt-Keys alphabetisch anordnen oder Array-Elemente nach Wert sortieren. Aufsteigend/Absteigend und Rekursion in verschachtelte Strukturen umschaltbar.

Ähnliche Tools

Was ist JSON sortieren (JSON Sort)?

JSON sortieren (JSON Sort) ist die Neuordnung von Schlüsseln innerhalb eines JSON-Objekts nach einer bestimmten Reihenfolge (am häufigsten alphabetisch), oder die Neuordnung von Elementen in einem JSON-Array nach einer bestimmten Regel (Zahlenwert, lexikografische Reihenfolge). Es ändert weder Feldwerte noch Feldtypen, nur die physische Reihenfolge - eine typische Kanonisierungsoperation, die JSON aus verschiedenen Quellen, Zeiten und von verschiedenen Autoren in eine einzige Strukturform bringt.

Die 5 Hauptgründe, warum JSON-Sortierung in der Praxis benötigt wird: ① **Git-Diff-Rauschen reduzieren** - verschiedene Entwickler konstruieren JSON-Objekte in unterschiedlichen Reihenfolgen, was beim Commit zu riesigen bedeutungslosen Diffs führt. Nach Vereinheitlichung der Key-Reihenfolge konzentriert sich der Diff auf echte Änderungen. ② **Config-Normalisierung** - CI/CD-Pipelines, Config-Center und Feature-Flag-Dienste wünschen konsistente Key-Reihenfolgen für alle Umgebungen, um Audit, Rollback und Cross-Env-Diff zu erleichtern. ③ **Datenvergleich** - Vor-Sortieren vor der Verwendung eines JSON-Diff-Tools eliminiert falsche Unterschiede durch unterschiedliche Key-Reihenfolgen. ④ **API-Antwort-Standardisierung** - Frontends, die Antworten cachen oder hashen, wünschen stabile Key-Reihenfolge, um zu vermeiden, dass dieselben Geschäftsdaten aufgrund unterschiedlicher Reihenfolge als unterschiedliche Keys behandelt werden. ⑤ **Lesbarkeit** - handgeschriebenes JSON wird oft feldweise nach Geschäftslogik aufgebaut; Sortieren macht es visuell ordentlicher.

Auf der Implementierungsebene besteht der Kern der JSON-Sortierung darin, jede Ebene der Objekt-Keys mit `localeCompare` zu sortieren und verschachtelte Objekte rekursiv zu verarbeiten. Das JSON-Sortier-Tool von GeekFormat hat zwei Modi: ① **Nach Key sortieren** (Standard) - ordnet nur Objekt-Keys alphabetisch neu, wobei die Reihenfolge der Array-Elemente erhalten bleibt. ② **Nach Array-Element sortieren** - sortiert Array-Elemente nach ihrer serialisierten String-Wörterbuchreihenfolge. Es unterstützt auch einen Rekursionsschalter und einen Aufsteigend/Absteigend-Schalter. Der gesamte Prozess passiert lokal im Browser; nichts wird hochgeladen.

Anwendungsfälle

  • Vereinheitlichung der Key-Reihenfolge in Team-JSON-Config-Dateien, package.json, tsconfig.json usw. zur Reduzierung von Git-Diff-Rauschen
  • Sortieren Sie zwei JSONs vor dem Vergleich, um falsche Unterschiede durch unterschiedliche Key-Reihenfolgen zu eliminieren, sodass sich der Diff auf echte Änderungen konzentriert
  • Standardisierung der Key-Reihenfolge von API-Antwortdaten zur Erleichterung von Frontend-Caching, IndexedDB-Speicherung und Objekt-Hash-Berechnung
  • Persistierung von CI/CD-Config-Center, Feature-Flag-Dienst-Configs in kanonischer Key-Reihenfolge zur Erleichterung von Audit und Rollback
  • Aufräumen großer JSON-Config-Dateien oder Datenexporte - alphabetische Sortierung der Keys macht sie visuell ordentlicher
  • Vereinheitlichung der Key-Reihenfolge vor dem Schreiben von JSON in Datenbank / Redis / Message-Queue zur Gewährleistung idempotenter nachgelagerter Konsumierung

Anleitung

  1. Fügen Sie den zu sortierenden JSON-Inhalt in das linke Eingabefeld ein, oder klicken Sie auf 'Beispiel', um ein typisches mehrstufiges JSON zu laden, oder laden Sie eine .json/.txt-Datei hoch
  2. Wählen Sie den Sortiermodus aus der unteren Optionsleiste: Standard 'Nach Key sortieren'; wechseln Sie zu 'Nach Array sortieren', wenn Sie Array-Elemente sortieren müssen
  3. Schalten Sie die Aufsteigend/Absteigend-Schaltfläche nach Bedarf um, aktivieren oder deaktivieren Sie 'Rekursiv' (standardmäßig aktiviert)
  4. Klicken Sie auf die Schaltfläche 'Sortieren'; das rechte Ausgabefeld zeigt das formatierte sortierte Ergebnis. Klicken Sie auf 'Kopieren' oder 'Herunterladen', um als sorted.json zu speichern

Funktionen

  • Zwei Sortiermodi: unterstützt 'Nach Objekt-Key sortieren' und 'Nach Array-Element sortieren' als zentrale Modi, mit einem Klick umschaltbar
  • Rekursive verschachtelte Verarbeitung: Rekursion standardmäßig aktiviert, absteigend in mehrstufig verschachtelte Objekte zum Sortieren der Keys auf jeder Ebene, um eine konsistent ordentliche Struktur sicherzustellen
  • Aufsteigend/Absteigend-Schalter: eingebauter Aufsteigend- (A-Z) / Absteigend- (Z-A) Schalter, flexibel für Lesegewohnheiten und Geschäftsanforderungen
  • localeCompare-Wörterbuchreihenfolge: Key-Vergleich verwendet lokale Wörterbuchreihenfolge, sortiert Chinesisch, Sonderzeichen und Emoji korrekt
  • Datenstruktur erhalten: passt nur Key-Namen- und Array-Element-Reihenfolge an, fügt keine Felder hinzu oder entfernt sie, ändert keine Werttypen
  • Schnelle Beispieldaten-Erfahrung: eingebaute 'zoo + alpha/beta/omega' Demo-Daten, mit einem Klick laden, um den Sortiereffekt zu sehen
  • Lokale Verarbeitung für Privatsphäre: Parsing, Sortierung und Formatierung passieren alle lokal im Browser, keine Eingabe wird an einen Server gesendet
  • Nahtloser Übergang zu nachgelagerten Tools: sortierte Ergebnisse können mit einem Klick in JSON-Formatierer, Diff-Vergleich, Schema-Validator usw. kopiert werden

Codebeispiele

Objekt-Key-Sortierung in JavaScript mit Object.keys + sort

javascript
// Rekursive Key-Sortierung, gibt ein neues Objekt zurück (Original wird nicht modifiziert)
function sortKeysDeep(value) {
  if (Array.isArray(value)) return value.map(sortKeysDeep);
  if (value !== null && typeof value === 'object') {
    return Object.keys(value)
      .sort((a, b) => a.localeCompare(b))
      .reduce((acc, k) => {
        acc[k] = sortKeysDeep(value[k]);
        return acc;
      }, {});
  }
  return value;
}

const data = { zoo: { animals: ['zebra', 'elephant'] }, alpha: 1, beta: 2 };
const sorted = sortKeysDeep(data);
console.log(JSON.stringify(sorted, null, 2));
// => {
//      "alpha": 1,
//      "beta": 2,
//      "zoo": { "animals": ["zebra", "elephant"] }
//    }

Python sort_keys=True + Array-Sortierung

python
import json

data = {"zoo": {"animals": ["zebra", "elephant"]}, "alpha": 1, "beta": 2}

# Auto-Sortierung alphabetisch bei Serialisierung mit sort_keys
sorted_json = json.dumps(data, indent=2, sort_keys=True, ensure_ascii=False)
print(sorted_json)

# Array nach Wert sortieren
arr = [3, 1, 4, 1, 5, 9, 2, 6]
print(sorted(arr))          # numerisch aufsteigend
print(sorted(arr, reverse=True))  # absteigend

# String-Wörterbuchreihenfolge
print(sorted(['banana', 'Apple', 'cherry']))  # ['Apple', 'banana', 'cherry']

Mit jq nach Key sortieren

bash
# Rekursive Key-Sortierung + 2-Leerzeichen-Einrückung
jq -S '.' data.json

# Erklärung: -S (--sort-keys) sortiert alle Objekt-Keys rekursiv in ASCII aufsteigender Reihenfolge

# Array nach Element-String-Wörterbuchreihenfolge sortieren (Objekte werden per JSON-String verglichen)
jq 'sort' data.json

# Array nach einem Feld sortieren (z. B. nach Alter aufsteigend)
jq 'sort_by(.age)' data.json

# Absteigend
jq 'sort_by(.age) | reverse' data.json

Häufig gestellte Fragen

Was ist der Unterschied zwischen JSON sortieren und JSON formatieren?

JSON-Formatierer passt nur Einrückung, Zeilenumbrüche und Leerzeichen an, ohne die Reihenfolge der Keys zu ändern. JSON-Sortierung ordnet die physische Reihenfolge von Key-Namen (alphabetisch) oder Array-Elementen (nach Wertgröße) neu. Beide werden oft zusammen verwendet: erst sortieren, um die Struktur ordentlich zu machen, dann formatieren, um den Inhalt lesbar zu machen - die endgültige Ausgabe ist das sauberste JSON.

Wird das sortierte JSON größer?

Die Bytezahl bleibt im Wesentlichen unverändert. Die Sortierung fügt keine Felder hinzu oder entfernt sie, ordnet nur Key-Namen neu, sodass die serialisierte Zeichenanzahl fast identisch mit dem Original ist (Einrückungszeichen können sich um 1-2 Bytes unterscheiden).

Ändert es Feldwerte oder Feldtypen?

Nein. Dieses Tool ist eine rein strukturelle Neuordnung: Objekt-Keys werden umgeordnet, Array-Elemente neu positioniert, Werte und Typen bleiben unangetastet. Die relative Semantik von `null`, Booleans, Zahlen, Strings, Objekten und Arrays bleibt vollständig erhalten.

Kann ich Objekt-Keys nach Wert sortieren?

Dieses Tool unterstützt derzeit zwei Modi: ① Sortieren nach Objekt-Key alphabetisch (die Key-Reihenfolge des Objekts ändert sich); ② Sortieren von Array-Elementen nach Wert (Elemente innerhalb eines Arrays ändern die Position). Wenn Sie Array-Elemente nach einem Objekt-Feldwert sortieren müssen, extrahieren Sie dieses Feld zuerst mit dem JSON-Path-Tool in ein Top-Level-Array und verwenden Sie dann den Array-Modus zum Sortieren.

Was bedeutet rekursive Sortierung? Sollte ich sie deaktivieren?

Rekursiv = Key-Namen auf jeder Ebene verschachtelter Objekte sortieren. Nicht-rekursiv = nur die Top-Level-Objekt-Keys sortieren; Sub-Objekte behalten ihre ursprüngliche Reihenfolge. In den meisten Szenarien empfehlen wir, die Rekursion aktiviert zu lassen, um eine konsistent ordentliche Struktur zu erhalten. Nur wenn Ihre inneren Objekte eine spezifische Reihenfolge-Semantik haben (z. B. eine 'Prioritätsliste' in der Config), würden Sie die Rekursion deaktivieren.

Warum werden meine Integer-Keys an den Anfang sortiert?

Dies ist das JavaScript-Spec-Verhalten: Wenn die Keys eines Objekts wie nicht-negative Ganzzahlen aussehen (0, 1, 2...), iteriert die Engine sie in numerisch aufsteigender Reihenfolge - Integer-Keys erscheinen vor String-Keys. Die Sortierung dieses Tools bewahrt dieses Verhalten. Wenn Sie möchten, dass 'integer-artige Keys auch in String-Reihenfolge sortiert werden', verwenden Sie JSON-Reparatur oder einen Editor, um sie in String-Keys mit Anführungszeichen wie "0", "1" zu ändern.

Können chinesische Key-Namen nach Pinyin sortiert werden?

Ja. Unter der Haube verwendet dieses Tool JavaScripts localeCompare, das standardmäßig nach der aktuellen Browser-Locale sortiert. In einer chinesischen Umgebung wird im Wesentlichen nach Pinyin aufsteigend sortiert, aber das genaue Verhalten variiert je nach Browser und Betriebssystem. Für strenge Pinyin-Sortierung verwenden Sie eine Node.js-Bibliothek, die ICU-Sortierregeln unterstützt (z. B. `natural-orderby`).

Wie sortiert man Objekte in einem Array?

Der Array-Modus unterstützt das Sortieren der Objekte innerhalb eines Arrays nach der 'Wörterbuchreihenfolge der serialisierten Zeichenkette' - das bedeutet, dass Objekte nach dem String-Wert des ersten unterschiedlichen Felds sortiert werden. Um nach einem bestimmten Feld zu sortieren (z. B. Preis, Datum), verwenden Sie eine sort-by-Operation im JSON-Path-Tool, oder in Code `Array.prototype.sort((a, b) => a.price - b.price)`.

Kann ich die ursprüngliche Reihenfolge nach der Sortierung wiederherstellen?

Dieses Tool führt keine Historie der ursprünglichen Reihenfolge (aus Gründen der Einfachheit). Empfehlungen: ① Kopieren Sie das Original vor der Änderung in die Zwischenablage; ② Speichern Sie das Original als .json-Datei für Rollback; ③ Verwenden Sie git zur Verwaltung von Originalen in der Produktion - `git checkout` bei Bedarf eine beliebige historische Version.

Kann das sortierte Ergebnis exportiert und gespeichert werden?

Ja. Klicken Sie auf 'Herunterladen', um als sorted.json zu speichern; oder klicken Sie auf 'Kopieren', um das Ergebnis in die Zwischenablage zu legen und in Code oder Dokumente einzufügen. Die heruntergeladene Datei ist Standard-JSON, konsumierbar von jedem Editor, jeder IDE oder jedem CI-Tool.

Lädt das Tool mein JSON auf einen Server hoch?

Nein. Parsing, Sortierung und Formatierung passieren alle lokal im Browser; Eingabe und Zwischenergebnisse werden nicht an irgendeinen Server gesendet. Funktioniert offline, geeignet für die Verarbeitung sensibler JSON (z. B. interne Configs, unveröffentlichte API-Antworten).

Was ist die beste Verwendungsreihenfolge mit JSON Diff und Schema-Validierung?

Empfohlene Kette: ① JSON reparieren (ungültiges JSON bereinigen) → ② JSON sortieren (Key-Reihenfolge vereinheitlichen) → ③ JSON Diff (Vergleich basierend auf sortiertem Ergebnis, minimales Diff-Rauschen) → ④ JSON formatieren (Einrückung für Lesbarkeit vereinheitlichen) → ⑤ JSON Schema-Validierung (Geschäftsfeld-Einschränkungen). Wählen Sie die Schritte, die Sie benötigen.

Fehlerbehebung

Sortierung zeigt 'Invalid JSON' Fehler

Ursache: Eingabe ist kein gültiges JSON. Lösung: Fügen Sie zuerst das JSON in das JSON-Reparatur-Tool zur Bereinigung ein (behandelt automatisch Kommas am Ende, einfache Anführungszeichen, Keys ohne Anführungszeichen usw.), dann zurück zu diesem Tool; oder prüfen Sie, ob äußere geschweifte Klammern / eckige Klammern fehlen.

Integer-Keys werden an den Anfang sortiert

Ursache: Die JavaScript-Spec iteriert 'nicht-negative Ganzzahl-artig aussehende' Keys in numerisch aufsteigender Reihenfolge. Lösung: Ändern Sie Integer-Keys zu String-Keys ("0", "1") vor der Sortierung; oder akzeptieren Sie dieses Verhalten als Feature.

Array-Objekte wurden nicht nach meinem erwarteten Feld sortiert

Ursache: Der Array-Modus sortiert nach der Wörterbuchreihenfolge der serialisierten Zeichenkette, wobei das erste unterschiedliche Feld die endgültige Reihenfolge bestimmt. Lösung: Verwenden Sie sort-by im JSON-Path-Tool; oder in Code `arr.sort((a, b) => a.field - b.field)`, um den Komparator anzupassen; dieses Tool zielt hauptsächlich auf Key-Name-Sortierszenarien ab.

Chinesische Key-Namen werden nicht wie erwartet sortiert

Ursache: Das Verhalten von localeCompare variiert leicht zwischen Browsern/Betriebssystemen, und für Chinesisch werden standardmäßig Unicode-Codepunkte oder die Browser-Locale verwendet. Lösung: Geben Sie die Locale im Code explizit an (z. B. `localeCompare('de-DE')`); oder wechseln Sie zu einer Bibliothek, die ICU-Sortierregeln für strenge Pinyin-Sortierung unterstützt.

Innere verschachtelte Objekte wurden nicht sortiert (nur die äußere Ebene)

Ursache: 'Rekursiv' in der unteren Optionsleiste ist nicht aktiviert. Lösung: Aktivieren Sie den 'Rekursiv'-Schalter (standardmäßig aktiviert), lösen Sie die Sortierung erneut aus; die Keys der inneren Objekte werden dann ebenfalls alphabetisch sortiert.

Große Dateien (10 MB+) lassen die Sortierung einfrieren

Ursache: Das gleichzeitige Parsen eines großen Textes mit JSON.parse verbraucht viel Speicher. Lösung: Halten Sie die Eingabe innerhalb von 1-2 MB; für riesige Dateien verwenden Sie Node.js (`Object.keys(...).sort()`) oder Python (`json.dumps(..., sort_keys=True)`) Skripte lokal; verwenden Sie dieses Tool danach für eine kleine Überprüfung.

Glossar

JSON Sort
Neuordnung von JSON-Objekt-Keys alphabetisch oder Array-Elementen nach Wert; ändert keine Feldwerte oder Typen, nur die physische Reihenfolge.
localeCompare
In JavaScript eingebaute String-Wörterbuchvergleichsfunktion, die -1/0/1 zurückgibt. Dieses Tool verwendet localeCompare zum Sortieren von Keys und behandelt Chinesisch, Sonderzeichen und Emoji korrekt.
ASCII Aufsteigend / Absteigend
Sortierung nach Unicode-Codepunkten der Zeichen (ASCII-Tabelle); Großbuchstaben A-Z vor Kleinbuchstaben a-z, Ziffern 0-9 vor Buchstaben.
Locale-aware Sortierung
Sortierung unter Berücksichtigung von Sprachkonventionen; für Chinesisch standardmäßig nach Unicode-Codepunkten oder Browser-Locale, was sich von strenger Pinyin-Sortierung unterscheidet.
Integer-artiger Key
Ein Objekt-Key, der wie eine nicht-negative Ganzzahl aussieht (z. B. "0", "1", "2"); JavaScript-Engines iterieren sie automatisch in numerisch aufsteigender Reihenfolge. Spec-Verhalten, kann nicht deaktiviert werden.
Rekursive Sortierung
Sortierung von Key-Namen auf jeder Ebene verschachtelter Objekte. Dieses Tool aktiviert sie standardmäßig; Deaktivieren sortiert nur die oberste Ebene.
Kanonische Form
Normalisierte Form; JSON-Sortierung ist ein Mittel zum Aufbau einer kanonischen Form, die Diff, Cache-Hash und Umgebungsübergreifende Konsistenz erleichtert.
Git-Diff-Rauschen
Diff-Zeilen in Code-Reviews, die durch Format-Unterschiede (nicht echte Logikänderungen) verursacht werden; Commits mit JSON in unterschiedlicher Key-Reihenfolge erzeugen große Mengen Rausch-Diffs.
pre-commit Hook
Skript, das vor einem Git-Commit automatisch ausgeführt wird; viele Teams rufen `jq -S .` in pre-commit auf, um JSON-Datei-Keys vor 'add' zu sortieren und so konsistente JSON-Reihenfolge im Repo sicherzustellen.
JSON-Diff-Tool
Ein Tool (z. B. jsondiffpatch), das zwei JSONs vergleicht, um Unterschiede zu finden; empfohlen, beide Seiten zuerst zu sortieren, um falsche Diffs durch Key-Reihenfolge zu eliminieren.

JSON-Sortierszenarien & Methodenreferenz

SzenarioSortieren nachEmpfohlene ImplementierungPassendes Tool
Git-Diff-Rauschen reduzierenObjekt-Key alphabetischjq -SDieses Tool / jq
Config-Center-NormalisierungObjekt-Key alphabetischjq -SDieses Tool / jq
API-Antwort-Cache-KeyObjekt-Key alphabetischJSON.stringify(sort_keys=True)Dieses Tool / Python json
Paginierte API-Array-ZusammenführungKeine SortierungconcatJSON-Zusammenführungs-Tool
Array nach Erstellungszeit sortierenArray-Element .created_atjq 'sort_by(.created_at)'jq sort_by
Produkte nach Preis sortierenArray-Element .pricelodash _.sortByJS sort((a,b)=>a.price-b.price)

JSON sortieren vs JSON Diff vs JSON zusammenführen

ToolWas es löstSortier-DimensionNormalerweise kombiniert mit
JSON sortieren (dieses Tool)Key/Array-Reihenfolge vereinheitlichenKeys / Array-ElementeJSON Diff, JSON zusammenführen
JSON DiffZwei JSONs auf Unterschiede vergleichenKeine (inhaltsbasiert)Sortieren (erst sortieren, dann diff)
JSON zusammenführenMulti-Source-ZusammenführungNach Config sortierbarSortieren (nach Zusammenführung normalisieren)
JSON reparierenUngültiges JSON in gültiges umwandelnKeineSortieren (nach Reparatur archivieren)
JSON Schema ValidierungFeld-Einschränkungs-ValidierungKeineKann sortierte Ausgabe validieren

Authoritative References