Minimieren Sie JSON, ohne große Zahlen zu ändern
Wählen Sie die minimierte Ausgabe und deaktivieren Sie den letzten Zeilenumbruch, wenn jedes Byte zählt. Das Tool validiert die vollständige JSON-Grammatik, entfernt Leerzeichen nur dort, wo die Grammatik dies zulässt, und schreibt Zahlentoken genau so, wie sie angezeigt wurden, anstatt sie durch Gleitkommaarithmetik umzuwandeln.
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.
Leerzeichen, Tabulatoren und Zeilenumbrüche innerhalb von Zeichenfolgen in Anführungszeichen sind Daten und werden niemals entfernt.
Ein Wert wie 9007199254740993 bleibt genau so geschrieben.
Das minimierte Ergebnis ist eine neue lokale Datei; Das Original wird nicht verändert.
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
Entfernt der Minifier Leerzeichen aus einer JSON-Zeichenfolge?
Nein. Es verfolgt Zeichenfolgen in Anführungszeichen und Escape-Sequenzen und entfernt Leerzeichen nur außerhalb einer Zeichenfolge.
Warum validieren, bevor Leerzeichen entfernt werden?
Andernfalls kann ein Byte-Rewriter eine kleinere Datei erzeugen, die immer noch ungültig ist. Durch die Validierung wird sichergestellt, dass es sich bei der vollständigen Quelle um einen JSON-Wert mit korrekten Zeichenfolgen, Zahlen, Arrays und Objekten handelt, bevor etwas zum Download angeboten wird.
Quellen
Die vollständige Methode, das Rechenbeispiel und alle Annahmen hinter diesem Ergebnis stehen auf JSON-Formatierer.