Drei Modi, eine Arbeitsfläche. Formatieren, Prüfen und Vergleichen teilen sich denselben Parser und denselben Editor, sodass sich ein Dokument in jedem Modus gleich verhält und ein Wechsel zwischen ihnen niemals umformatiert, was Sie eingefügt haben.
Was jeder Modus tut
| Modus | Was er tut |
|---|
| FormatierenSchreibt um | Neu einrücken mit zwei Leerzeichen, vier Leerzeichen oder Tabulatoren, den Weißraum wieder entfernen oder Schlüssel rekursiv in beide Richtungen sortieren. Werte, Escapes und Unicode kommen genau so zurück, wie sie hineingingen, und Arrays behalten ihre Reihenfolge. |
| PrüfenLokalisiert | Benennt den Fehler und zeigt darauf, statt zu melden, das Dokument sei ungültig, und Ihnen die Suche nach der Stelle zu überlassen. |
| VergleichenVergleicht Daten | Zwei Dokumente danach verglichen, was sie bedeuten, mit jeder Änderung als hinzugefügt, entfernt, geändert oder Typ geändert benannt. |
Fehler werden lokalisiert, nicht nur gemeldet
Neunzehn verschiedene Ursachen werden benannt, jeweils mit Zeile, Spalte und Byte-Offset, und die umliegenden Zeilen erscheinen mit einem Zirkumflex unter dem Zeichen. Ein Komma vor der schließenden Klammer, ein Schlüssel in einfachen Anführungszeichen, ein bloßes Wort, ein Kommentar, ein ungültiges Escape und ein rohes Steuerzeichen in einer Zeichenkette lesen sich als sie selbst statt als ein allgemeiner Parse-Fehler.
Zwei Fehler, die ein gültiges Dokument trotzdem tragen kann
Beide werden auch bei Dokumenten gemeldet, die sauber parsen, weil beide Ihre Daten still verändern. Einen doppelten Schlüssel kann nichts mehr retten: JSON.parse behält nur den letzten Wert, und jeder andere Parser, dem Sie begegnen werden, tut dasselbe, deshalb nennt die Warnung den Schlüssel und seine Zeile, damit die Quelle korrigiert werden kann. Eine Ganzzahl jenseits von 2^53 ändert ihren Wert in dem Moment, in dem JavaScript sie liest, und so wird aus einem 64-Bit-Bezeichner still ein anderer Bezeichner.
Was der Vergleich nicht als Unterschied gelten lässt
Einrückung, Zeilenenden und die Reihenfolge, in der Objektschlüssel geschrieben wurden, tragen in JSON keine Bedeutung und sind daher keine Unterschiede. Die Reihenfolge in einem Array trägt Bedeutung und wird als Sequenz verglichen, weshalb ein eingefügtes Element als eine Einfügung erscheint und nicht so, als hätte sich jedes folgende Element geändert.
Ein Dokument lesen, das zu groß zum Scrollen ist
- Der Baum öffnet sich Ebene für Ebene, sodass aus einer großen Datei keine große Seite wird. Jede Zeile trägt den Pfad, der zu ihr führt, users[4].email, mit einer Schaltfläche zum Kopieren des Pfads oder des Werts.
- Suche nach Schlüsseln, nach Werten oder nach beidem, mit Trefferzähler und Schritt durch die Fundstellen.
- Statistiken erscheinen, sobald das Dokument parst: Schlüssel, Objekte, Arrays, Zeichenketten, Zahlen, Wahrheitswerte, Nullwerte, maximale Tiefe, Größe und Zeilen.
- Umwandlungen nach YAML, in ein TypeScript-Interface oder nach CSV. Wenn ein Dokument keine Tabelle sein kann, sagt der CSV-Weg, welche Form er gebraucht hätte, statt etwas Irreführendes auszugeben.
Die Obergrenze liegt bei 5 MiB. Oberhalb von etwa 300 KiB schalten sich die Syntaxfarben ab, damit das Tippen flüssig bleibt, und bei sehr großen Dokumenten bricht der ausführliche Vergleich früher ab und sagt es; Prüfung und Statistiken arbeiten über den gesamten Bereich weiter.
Hinter dieser Seite steht kein API-Endpunkt. Das Dokument wird im Browserspeicher geparst und erreicht nie einen Server, nichts wird in den Speicher oder in die Adresszeile geschrieben, und das Einzige, was zwischen Besuchen bleibt, ist die gewählte Einrückung.