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
- 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
- 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
- Schalten Sie die Aufsteigend/Absteigend-Schaltfläche nach Bedarf um, aktivieren oder deaktivieren Sie 'Rekursiv' (standardmäßig aktiviert)
- 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
pythonimport 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
| Szenario | Sortieren nach | Empfohlene Implementierung | Passendes Tool |
|---|---|---|---|
| Git-Diff-Rauschen reduzieren | Objekt-Key alphabetisch | jq -S | Dieses Tool / jq |
| Config-Center-Normalisierung | Objekt-Key alphabetisch | jq -S | Dieses Tool / jq |
| API-Antwort-Cache-Key | Objekt-Key alphabetisch | JSON.stringify(sort_keys=True) | Dieses Tool / Python json |
| Paginierte API-Array-Zusammenführung | Keine Sortierung | concat | JSON-Zusammenführungs-Tool |
| Array nach Erstellungszeit sortieren | Array-Element .created_at | jq 'sort_by(.created_at)' | jq sort_by |
| Produkte nach Preis sortieren | Array-Element .price | lodash _.sortBy | JS sort((a,b)=>a.price-b.price) |
JSON sortieren vs JSON Diff vs JSON zusammenführen
| Tool | Was es löst | Sortier-Dimension | Normalerweise kombiniert mit |
|---|---|---|---|
| JSON sortieren (dieses Tool) | Key/Array-Reihenfolge vereinheitlichen | Keys / Array-Elemente | JSON Diff, JSON zusammenführen |
| JSON Diff | Zwei JSONs auf Unterschiede vergleichen | Keine (inhaltsbasiert) | Sortieren (erst sortieren, dann diff) |
| JSON zusammenführen | Multi-Source-Zusammenführung | Nach Config sortierbar | Sortieren (nach Zusammenführung normalisieren) |
| JSON reparieren | Ungültiges JSON in gültiges umwandeln | Keine | Sortieren (nach Reparatur archivieren) |
| JSON Schema Validierung | Feld-Einschränkungs-Validierung | Keine | Kann sortierte Ausgabe validieren |
Authoritative References
- JSON-Komprimierung
- CSV zu JSON
- JSON zu CSV
- JSON Diff
- JSON Escape / Unescape
- JSON Flatten
- JSON-Formatierung
- JSON-Generator
- JSONPath Online-Abfrage
- JSON zusammenführen
- JSON reparieren
- JSON Schema Validator
- JSON sortieren
- JSON Stringify
- JSON zu HTML-Tabelle
- JSON zu Java
- JSON zu Markdown
- JSON in SQL umwandeln
- JSON zu TOML
- JSON zu TypeScript
- XML zu JSON
- JSON zu XML
- YAML zu JSON
- JSON zu YAML
- JSON zu Python
- JSON zu Go
- JSON zu Rust
- JSON zu Swift
- JSON zu C#
- JSON zu C++
- JSON zu PHP