Tri režimy, jedno pracovné miesto. Formátovanie, validácia a porovnanie zdieľajú rovnaký parser a rovnaký editor, takže sa dokument správa rovnako, nech ho číta ktorýkoľvek režim, a prepnutie medzi nimi nikdy nepreformátuje to, čo ste vložili.
Čo robí ktorý režim
| Režim | Čo robí |
|---|
| FormátovaniePrepisuje | Odsadenie dvoma medzerami, štyrmi alebo tabulátorom, odstránenie bielych znakov späť, alebo rekurzívne zoradenie kľúčov v oboch smeroch. Hodnoty, escape sekvencie aj Unicode sa vrátia presne tak, ako prišli, a polia si držia poradie. |
| ValidáciaUrčuje miesto | Pomenuje chybu a ukáže na ňu, namiesto toho, aby oznámila, že dokument je neplatný, a hľadanie nechala na vás. |
| PorovnaniePorovnáva dáta | Dva dokumenty porovnané podľa toho, čo znamenajú, s každou zmenou označenou ako pridaná, odobraná, zmenená alebo so zmeneným typom. |
Chyby sa lokalizujú, nielen hlásia
Pomenovaných je devätnásť rôznych príčin, každá s riadkom, stĺpcom a bajtovým posunom, a okolité riadky sa vypíšu so strieškou pod znakom. Čiarka pred zatváracou zátvorkou, kľúč v apostrofoch, holé slovo, komentár, neplatná escape sekvencia aj surový riadiaci znak vnútri reťazca sa čítajú samy za seba, nie ako jedna všeobecná chyba analýzy.
Dve chyby, ktoré môže niesť aj platný dokument
Obe sa hlásia pri dokumentoch, ktoré sa rozoberú čisto, pretože obe ticho menia vaše dáta. Duplicitný kľúč už nič nezachráni: JSON.parse si ponechá len poslednú hodnotu a rovnako to robí každý ďalší parser, na ktorý natrafíte, takže varovanie pomenuje kľúč a jeho riadok, aby sa dal opraviť zdroj. Celé číslo nad 2^53 zmení hodnotu vo chvíli, keď ho JavaScript prečíta, a presne tak sa zo 64-bitového identifikátora ticho stane iný identifikátor.
Čo porovnanie odmieta nazvať rozdielom
Odsadenie, konce riadkov a poradie, v akom boli kľúče objektu zapísané, nemajú v JSON význam, takže rozdielmi nie sú. Poradie v poli význam má a porovnáva sa ako postupnosť, a preto sa jeden vložený prvok číta ako jedno vloženie, a nie ako keby sa zmenil každý ďalší prvok.
Čítať dokument príliš veľký na rolovanie
- Strom sa otvára po jednej úrovni, takže sa z veľkého súboru nestane veľká stránka. Každý riadok nesie cestu, ktorá k nemu vedie, users[4].email, s tlačidlom na skopírovanie cesty alebo hodnoty.
- Hľadanie podľa kľúčov, podľa hodnôt alebo oboch, s počtom zhôd a krokovaním medzi nimi.
- Štatistiky sa objavia, len čo sa dokument rozoberie: kľúče, objekty, polia, reťazce, čísla, pravdivostné hodnoty, null, maximálna hĺbka, veľkosť a riadky.
- Prevody do YAML, do rozhrania TypeScript alebo do CSV. Keď dokument nemôže byť tabuľkou, cesta cez CSV povie, aký tvar potrebovala, namiesto toho, aby vypustila niečo zavádzajúce.
Strop je 5 MiB. Nad zhruba 300 KiB sa farby syntaxe vypnú, aby písanie zostalo plynulé, a pri veľmi veľkých dokumentoch sa podrobné porovnanie zastaví skôr a povie to; validácia a štatistiky fungujú v celom rozsahu.
Za touto stránkou nie je žiadny koncový bod API. Dokument sa rozoberá v pamäti prehliadača a nikdy sa nedostane na server, nič sa nezapisuje do úložiska ani do adresného riadka a jediné, čo medzi návštevami zostáva, je zvolené odsadenie.