Formatieren Sie eine JSON-Datei, ohne sie hochzuladen
Wählen Sie die JSON-Datei, wählen Sie eine lesbare Ausgabe und verwenden Sie zwei Leerzeichen, es sei denn, das Projekt erfordert einen weiteren Einzug. Das Dokument wird validiert, optionale Leerzeichen werden neu geschrieben und eine neue .json-Datei wird lokal erstellt, ohne deren Inhalt an einen Server zu senden.
Ein UTF-8-JSON-Dokument mit bis zu 25 MB. Seine Bytes bleiben in diesem Browser-Tab.
Die Ergebnisse werden ohne Gewähr für ihre Richtigkeit bereitgestellt. Die Methode und ihre Quellen stehen unten, damit Sie den Rechenweg prüfen können.
Im lesbaren Modus werden Zeilenumbrüche und Einrückungen nur außerhalb von JSON-Zeichenfolgen eingefügt.
Zahlentoken, Schlüsselreihenfolge, doppelte Schlüssel und die Schreibweise von Zeichenfolgen-Escapes bleiben unverändert.
Ungültiges UTF-8 oder ungültiges JSON wird abgelehnt, anstatt teilweise neu geschrieben zu werden.
So funktioniert es
So wird es gemacht
- Lesen Sie die Datei als striktes UTF-8. Akzeptieren und nutzen Sie aus Kompatibilitätsgründen eine anfängliche UTF-8-Bytereihenfolgemarkierung, schreiben Sie jedoch keine in das Ergebnis.
- Validieren Sie das gesamte Dokument als einen RFC 8259-JSON-Wert, bevor Sie ein Artefakt erstellen. Lehnen Sie eine leere Datei, ungültiges UTF-8, nachgestellte Inhalte oder fehlerhafte Objekte, Arrays, Zeichenfolgen, Zahlen und Literalnamen ab.
- Scannen Sie die validierte Quelle und verfolgen Sie dabei Zeichenfolgen in Anführungszeichen und Backslash-Escapezeichen. Kopieren Sie innerhalb einer Zeichenfolge jede Codeeinheit genau. Verwerfen Sie außerhalb einer Zeichenfolge nur Leerzeichen, Tabulatorzeichen, Wagenrücklauf und Zeilenvorschub.
- Für eine lesbare Ausgabe fügen Sie den ausgewählten Einzug nach einem öffnenden Container und Komma, ein Leerzeichen nach einem Doppelpunkt und eine korrekt eingerückte Zeile vor einem nicht leeren schließenden Container ein. Für eine minimierte Ausgabe fügen Sie kein optionales Leerzeichen ein.
- Kodieren Sie den umgeschriebenen Text als UTF-8, fügen Sie nur bei Auswahl einen letzten Zeilenvorschub hinzu und bieten Sie eine neue .json-Datei an. Analysieren Sie Zahlentokens für die Ausgabe niemals in Gleitkommawerte.
Wovon es ausgeht
- Formatierung ist keine Kanonisierung. Die Reihenfolge der Objektmitglieder, doppelte Namen, die Schreibweise von Zahlen und die Auswahl von Zeichenfolgen-Escapes bleiben unverändert, selbst wenn ein anderer Parser sie normalisieren oder reduzieren könnte.
- JSON, das zwischen unabhängigen Systemen ausgetauscht wird, ist UTF-8 gemäß RFC 8259. UTF-16 und ältere Codepages gehören in den separaten Textkodierungskonverter, bevor diese Grammatik angewendet wird.
- Der native JSON-Parser wird nur als strenger Grammatikvalidator verwendet. Die herunterladbaren Bytes stammen aus einem tokenerhaltenden Scan des Originaltextes, nicht aus JSON.stringify.
- Die Eingabe ist auf 25 MB begrenzt. Das Umschreiben ergibt alle 250.000 Zeichen, sodass Fortschritt und Abbrechen weiterhin reaktionsfähig bleiben. Die native Validierung selbst wird bewusst dem optimierten Parser des Browsers überlassen.
Fragen
Kann die JSON-Formatierung eine große Ganzzahl runden?
Dieser Formatierer analysiert Zahlen nicht in JavaScript-Zahlenwerte, bevor er sie schreibt. Es validiert das Dokument und überträgt dann jedes ursprüngliche Nummerntoken unverändert.
Bedeutet lesbares JSON, dass die Schlüssel sortiert sind?
Nein. Die Formatierung ändert optionale Leerzeichen, nicht die Reihenfolge der Objektmitglieder. Bestehende Reihenfolgen und sogar doppelte Mitgliedsnamen bleiben in ihrer ursprünglichen Reihenfolge.
Quellen
Die vollständige Methode, das Rechenbeispiel und alle Annahmen hinter diesem Ergebnis stehen auf JSON-Formatierer.