Drie modi, één werkruimte. Formatteren, Valideren en Vergelijken delen dezelfde parser en dezelfde editor, dus een document gedraagt zich hetzelfde welke modus het ook leest, en wisselen tussen de modi herformatteert nooit wat je hebt geplakt.
Wat elke modus doet
| Modus | Wat hij doet |
|---|
| FormatterenHerschrijft | Opnieuw inspringen met twee spaties, vier spaties of tabs, de witruimte er weer uit halen, of sleutels recursief sorteren in beide richtingen. Waarden, escapes en Unicode komen er precies zo uit als ze erin gingen, en arrays houden hun volgorde. |
| ValiderenLokaliseert | Benoemt de fout en wijst hem aan, in plaats van te melden dat het document ongeldig is en jou te laten zoeken waar. |
| VergelijkenVergelijkt data | Twee documenten vergeleken op wat ze betekenen, met elke wijziging benoemd als toegevoegd, verwijderd, gewijzigd of van type gewijzigd. |
Fouten worden gelokaliseerd, niet alleen gemeld
Negentien verschillende oorzaken worden benoemd, elk met regel, kolom en byte-offset, en de omliggende regels worden afgedrukt met een dakje onder het teken. Een komma voor een sluithaakje, een sleutel tussen enkele aanhalingstekens, een kaal woord, een commentaar, een ongeldige escape en een ruw stuurteken in een string lezen als zichzelf in plaats van als één algemene parseerfout.
Twee fouten die een geldig document alsnog kan dragen
Beide worden gemeld bij documenten die schoon parsen, want beide veranderen je data stilletjes. Een dubbele sleutel is door niets meer te redden: JSON.parse houdt alleen de laatste waarde, en elke andere parser die je zult tegenkomen doet hetzelfde, dus de waarschuwing noemt de sleutel en zijn regel zodat de bron gecorrigeerd kan worden. Een geheel getal boven 2^53 verandert van waarde op het moment dat JavaScript het leest, en zo wordt een 64-bits identificatie stilletjes een andere identificatie.
Wat de vergelijking weigert een verschil te noemen
Inspringing, regeleindes en de volgorde waarin objectsleutels zijn geschreven hebben in JSON geen betekenis en zijn dus geen verschillen. De volgorde van een array heeft die wel en wordt als reeks vergeleken, en daarom leest één ingevoegd element als één invoeging in plaats van alsof elk volgend element is veranderd.
Een document lezen dat te groot is om te scrollen
- De boom opent één niveau tegelijk, zodat een groot bestand geen grote pagina wordt. Elke rij draagt het pad dat ernaartoe leidt, users[4].email, met een knop om het pad of de waarde te kopiëren.
- Zoeken op sleutel, op waarde of op beide, met een aantal treffers en een stap door de resultaten.
- Statistieken verschijnen zodra het document parst: sleutels, objecten, arrays, strings, getallen, booleans, null-waarden, maximale diepte, grootte en regels.
- Conversies naar YAML, naar een TypeScript-interface of naar CSV. Wanneer een document geen tabel kan zijn, zegt de CSV-weg welke vorm hij nodig had in plaats van iets misleidends uit te spugen.
Het plafond is 5 MiB. Boven ongeveer 300 KiB gaan de syntaxkleuren uit zodat typen soepel blijft, en bij zeer grote documenten stopt de gedetailleerde vergelijking eerder en zegt dat; validatie en statistieken blijven over het hele bereik werken.
Achter deze pagina zit geen API-eindpunt. Het document wordt in het browsergeheugen geparst en bereikt nooit een server, er wordt niets naar de opslag of de adresbalk geschreven, en het enige dat tussen bezoeken bewaard blijft is de inspringing die je koos.