Tři režimy, jedno pracovní místo. Formátování, validace a porovnání sdílejí stejný parser a stejný editor, takže se dokument chová stejně, ať jej čte kterýkoli režim, a přepnutí mezi nimi nikdy nepřeformátuje to, co jste vložili.
Co dělá který režim
| Režim | Co dělá |
|---|
| FormátováníPřepisuje | Odsazení dvěma mezerami, čtyřmi nebo tabulátorem, odstranění bílých znaků zpět, nebo rekurzivní řazení klíčů oběma směry. Hodnoty, escape sekvence i Unicode se vrátí přesně tak, jak přišly, a pole si drží pořadí. |
| ValidaceUrčuje místo | Pojmenuje závadu a ukáže na ni, místo aby oznámila, že dokument je neplatný, a nechala hledání na vás. |
| PorovnáníPorovnává data | Dva dokumenty porovnané podle toho, co znamenají, s každou změnou označenou jako přidaná, odebraná, změněná nebo se změněným typem. |
Závady se lokalizují, ne jen hlásí
Pojmenováno je devatenáct různých příčin, každá s řádkem, sloupcem a bajtovým posunem, a okolní řádky se vypíší se stříškou pod znakem. Čárka před zavírací závorkou, klíč v apostrofech, holé slovo, komentář, neplatná escape sekvence i syrový řídicí znak uvnitř řetězce se čtou samy za sebe, ne jako jedna obecná chyba analýzy.
Dvě závady, které může nést i platný dokument
Obě se hlásí u dokumentů, které se rozeberou čistě, protože obě tiše mění vaše data. Duplicitní klíč už nic nezachrání: JSON.parse si ponechá jen poslední hodnotu a stejně to dělá každý další parser, na který narazíte, takže varování pojmenuje klíč a jeho řádek, aby se dal opravit zdroj. Celé číslo nad 2^53 změní hodnotu ve chvíli, kdy je JavaScript přečte, a přesně tak se z 64bitového identifikátoru tiše stane jiný identifikátor.
Co porovnání odmítá nazvat rozdílem
Odsazení, konce řádků a pořadí, v jakém byly klíče objektu zapsány, nemají v JSON význam, takže rozdíly nejsou. Pořadí v poli význam má a porovnává se jako posloupnost, a proto se jeden vložený prvek čte jako jedno vložení, a ne jako by se změnil každý další prvek.
Číst dokument příliš velký na rolování
- Strom se otevírá po jedné úrovni, takže se z velkého souboru nestane velká stránka. Každý řádek nese cestu, která k němu vede, users[4].email, s tlačítkem pro zkopírování cesty nebo hodnoty.
- Hledání podle klíčů, podle hodnot nebo obojího, s počtem shod a krokováním mezi nimi.
- Statistiky se objeví, jakmile se dokument rozebere: klíče, objekty, pole, řetězce, čísla, pravdivostní hodnoty, null, maximální hloubka, velikost a řádky.
- Převody do YAML, do rozhraní TypeScript nebo do CSV. Když dokument nemůže být tabulkou, cesta přes CSV řekne, jaký tvar potřebovala, místo aby vypustila něco zavádějícího.
Strop je 5 MiB. Nad zhruba 300 KiB se barvy syntaxe vypnou, aby psaní zůstalo plynulé, a u velmi velkých dokumentů se podrobné porovnání zastaví dříve a řekne to; validace a statistiky fungují v celém rozsahu.
Za touto stránkou není žádný koncový bod API. Dokument se rozebírá v paměti prohlížeče a nikdy se nedostane na server, nic se nezapisuje do úložiště ani do adresního řádku a jediné, co mezi návštěvami zůstává, je zvolené odsazení.