JSON formatter a validátor
Vložte JSON do poľa vyššie a tento JSON formatter a validátor ho skontroluje už počas písania. Platný vstup naformátuje so zvoleným odsadením alebo ho minifikuje do jedného riadka. Pri neplatnom vstupe dostanete presnú chybu s riadkom a stĺpcom, zvýraznený úryvok a pri bežných chybách aj opravu jedným klikom. Všetko beží vo vašom prehliadači, takže odpovede z API, konfiguračné súbory ani exporty nikdy neopustia váš počítač.
Čo tento JSON formatter dokáže
- Formátovanie JSON (beautify) s odsadením 2 medzery, 4 medzery alebo tabulátor. Výstup zachová pôvodné poradie kľúčov, pokiaľ nezaškrtnete Zoradiť kľúče.
- Minifikácia JSON odstráni všetky medzery a zalomenia riadkov. Údaj o veľkosti pod výsledkom ukazuje, koľko bajtov ste ušetrili.
- Validácia JSON naživo podľa RFC 8259, aktuálneho štandardu JSON. Stavový riadok zozelenie hneď, ako je dokument správny.
- Automatická oprava bežných chýb, teda nadbytočných čiarok, jednoduchých úvodzoviek, kľúčov bez úvodzoviek, komentárov, hodnôt
True,NoneaNaNv štýle Pythonu a čísel ako.5alebo+1. - Načítanie súborov tlačidlom Otvoriť súbor alebo pretiahnutím súboru
.jsondo vstupu. Výsledok potom stiahnete alebo ho pošlete späť do vstupu na ďalšie spracovanie.
Prečo je chybová hláška dôležitejšia než červená farba
Väčšina online validátorov len oznámi, že niečo nie je v poriadku. Prehliadače na tom nie sú o moc lepšie. JSON.parse v Chrome hlási Unexpected token } in JSON at position 148, Firefox zase expected property name or '}' a ani jeden nepovie, na ktorý riadok sa máte pozrieť. Tento nástroj má vlastný parser, ktorý si pamätá, kde začína každý token. Keď sa zastaví, dostanete riadok a stĺpec, úryvok daného riadka so striežkou pod chybným znakom a zrozumiteľnú radu, napríklad Medzi dvoma vlastnosťami pravdepodobne chýba čiarka. Tlačidlo Prejsť na chybu presunie kurzor priamo na toto miesto vo vstupe.
Najčastejšie chyby, ktoré vidíme vo vložených dokumentoch:
| Vstup | Problém | Správny JSON |
|---|---|---|
{'name': 'Ada'} | jednoduché úvodzovky | {"name": "Ada"} |
{name: "Ada"} | kľúč bez úvodzoviek | {"name": "Ada"} |
[1, 2, 3,] | nadbytočná čiarka na konci | [1, 2, 3] |
{"a": 1 "b": 2} | chýbajúca čiarka | {"a": 1, "b": 2} |
{"ok": True} | literál z Pythonu | {"ok": true} |
{"x": 007} | nula na začiatku čísla | {"x": 7} alebo {"x": "007"} |
// comment | komentár | v JSON nie je povolený |
Tlačidlo Opraviť za mňa opraví všetky tieto chyby okrem chýbajúcej čiarky a nuly na začiatku čísla. Oprava je zámerne opatrná. Nikdy nehádá, kam patrí chýbajúca čiarka, pretože čiarka na nesprávnom mieste by zmenila význam dát, a 007 môže znamenať číslo 7 aj kód. V takých prípadoch namiesto opravy dostanete presnú pozíciu chyby.
Veľké čísla, poradie kľúčov a ďalšie veci, ktoré sa zvyčajne pokazia
Mnoho formatterov funguje tak, že zavolá JSON.parse a potom JSON.stringify. Táto cesta tam a späť potichu poškodzuje dáta. ID z Twitteru alebo zo Snowflake ako 1234567890123456789 presahuje hranicu 2^53 pre čísla v JavaScripte a vráti sa ako 1234567890123456800. Z hodnoty 1.0 sa stane 1 a z 1e3 zase 1000. Tento formatter čísla nikdy neprevádza na čísla s pohyblivou desatinnou čiarkou. Každý literál skopíruje presne tak, ako bol zapísaný, takže výstup je verným preformátovaním vstupu, nie jeho novou interpretáciou. To isté platí pre escape sekvencie v reťazcoch: "\u00e9" zostane "\u00e9" a nezmení sa na "é".
Zachováva sa aj poradie kľúčov. Podľa špecifikácie JSON nemajú vlastnosti objektu určené poradie, ale konfiguračné súbory, testovacie dáta a code review sa čítajú oveľa lepšie, keď je poradie stabilné. Ak uprednostňujete kanonický tvar, napríklad na porovnanie dvoch odpovedí z API v nástroji na porovnávanie textu (diff), zapnite Zoradiť kľúče a oba dokumenty budú mať vlastnosti zoradené abecedne na každej úrovni vnorenia.
Formátovanie JSON vs. minifikácia JSON: kedy použiť ktoré
Naformátovaný JSON je pre ľudí. Použite ho pri kontrole odpovede z API, pri písaní package.json, tsconfig.json alebo dokumentu OpenAPI, prípadne keď ukladáte testovacie dáta do repozitára, kde má diff ukazovať jednu zmenu na riadok. Dve medzery sú zvykom vo svete JavaScriptu, štyri medzery sú bežné v projektoch v Pythone a .NET a tabulátory umožnia každému čitateľovi zvoliť si vlastnú šírku.
Minifikovaný JSON je pre stroje. Medzery a zalomenia riadkov tvoria vo formátovanom dokumente zvyčajne 20 až 40 percent, takže ich odstránením sa zmenšia dáta posielané do prehliadačov, hodnoty uložené v Redise alebo v stĺpci databázy a atribúty data-* vložené do HTML. Kompresia gzip časť tohto rozdielu dorovná, minifikovaná verzia sa však aj tak skomprimuje na menší výsledok. Údaj o veľkosti pod výsledkom ukazuje presný rozdiel pre váš dokument.
JSON formatter v termináli a v editoroch
Na súbory, ktoré spracúvate opakovane, je nástroj príkazového riadka rýchlejší než akýkoľvek web. jq . file.json JSON naformátuje, jq -c . file.json ho minifikuje a python -m json.tool file.json funguje všade, kde je nainštalovaný Python. Visual Studio Code formátuje JSON skratkou Shift+Alt+F a keď pridáte vlastnosť $schema, overí ho aj podľa schémy. Táto stránka slúži na ostatné prípady, napríklad na odpoveď skopírovanú zo záložky Sieť (Network) vo vývojárskych nástrojoch, riadok z logu, úryvok konfigurácie z wiki alebo rýchlu kontrolu na počítači, kam nemôžete nič inštalovať.
Súvisiace nástroje na tomto webe: Base64 kódovač a dekódovač dekóduje dátovú časť (payload) tokenu JWT, čo je JSON zakódovaný v Base64url. Prevodník Unix timestampu zmení čísla createdAt, ktoré nájdete vo väčšine odpovedí z API, na čitateľné dátumy, a UUID dekodér prezradí verziu a časovú pečiatku identifikátorov vo vašich dátach. Ďalšie pomôcky nájdete medzi nástrojmi pre vývojárov.
Často kladené otázky
Nahráva sa môj JSON na server?
Nie. Parsovanie, formátovanie aj oprava prebiehajú celé vo vašom prehliadači v JavaScripte. Keď sa stránka načíta, môžete sa odpojiť od siete a nástroj bude fungovať ďalej. Nič sa nezaznamenáva ani neukladá.Prečo validátor odmieta komentáre, keď ich môj editor akceptuje?
Komentáre z JSON zámerne odstránil jeho autor Douglas Crockford, aby sa formát nepoužíval na direktívy pre parser. Súbory akotsconfig.json alebo .vscode/settings.json sú technicky JSONC, teda nadmnožina JSON, ktorú editory podporujú. Striktné parsery v API, databázach a väčšine programovacích jazykov ich odmietnu. Tlačidlo na opravu komentáre odstráni, takže výsledok je platný všade.
Dá sa naformátovať JSON Lines alebo viac objektov naraz?
Dokument JSON obsahuje presne jednu hodnotu. Ak vložíte viac objektov oddelených čiarkami alebo zalomeniami riadkov, validátor sa zastaví pri prvej nadbytočnej hodnote. Obaľte ich hranatými zátvorkami, čím vznikne pole, a potom ho naformátujte. Tlačidlo na opravu to nerobí automaticky, pretože nemôže vedieť, či mal byť vstup jedným dokumentom.Aká je maximálna veľkosť?
Pevný limit neexistuje. Dokumenty s veľkosťou niekoľkých megabajtov sa na notebooku naformátujú výrazne rýchlejšie než za sekundu. Nad približne 400 kB sa zvýrazňovanie syntaxe vypne, aby stránka reagovala svižne, kopírovanie a sťahovanie však fungujú ďalej.Mení zoradenie kľúčov dáta?
Nie. Objekty v JSON sú podľa definície neusporiadané, pozrite článok o JSON na Wikipédii (v angličtine), takže parser prečíta zoradený aj pôvodný dokument ako rovnakú hodnotu. Polia sa nikdy nepreusporadúvajú, pretože ich poradie je súčasťou dát.Ako escapovať JSON na vloženie do reťazca?
Najprv JSON minifikujte, potom escapujte každú spätnú lomku a dvojitú úvodzovku. Mnohé jazyky to ponúkajú priamo.JSON.stringify(JSON.stringify(obj)) v JavaScripte alebo json.dumps(json.dumps(obj)) v Pythone vytvorí reťazec JSON, ktorý obsahuje text JSON.