Formátování a validace dat pro spolehlivou výměnu dat
Formát JSON (JavaScript Object Notation) se stal standardem pro přenos dat mezi servery a klientskými aplikacemi. Při práci s rozhraními API, konfiguračními soubory nebo databázovými exporty se však často setkáváme s daty, která jsou kvůli chybějícímu formátování nečitelná, nebo obsahují syntaktické chyby, jež brání jejich dalšímu zpracování.
Tento online nástroj slouží k formátování, validaci a minifikaci JSON dat. Umožňuje analyzovat strukturu dokumentů, odhalovat chyby v syntaxi a optimalizovat velikost souborů pro produkční nasazení. Veškeré operace probíhají lokálně: váš JSON se zpracovává přímo ve vašem prohlížeči a na servery BroBroGo se nic neodesílá.
Možnosti vstupu a práce se soubory
Nástroj podporuje několik způsobů, jak data k analýze a úpravě načíst:
- Přímé vložení: Text lze zkopírovat a vložit přímo do vstupní oblasti.
- Nahrání souboru: Kliknutím na tlačítko "Otevřít soubor" nebo přetažením souboru do označené oblasti (funkce drag and drop) lze otevřít soubory s příponou
.jsonnebo.txt.
Při importu souborů platí pevná pravidla a omezení pro zajištění stability:
- Maximální velikost vstupu je omezena na 10 MiB. Pokud soubor toto omezení překročí, zobrazí se upozornění "Soubor je příliš velký — limit je
{limit}.". - Podporovány jsou výhradně soubory s příponou
.jsonnebo.txt. V případě jiného formátu nástroj zobrazí hlášení "Nepodporovaný typ souboru — vyberte soubor.json nebo.txt.". - Soubory musí být uloženy v kódování UTF-8. Pokud tomu tak není, proces selže s chybou "Tento soubor není text v kódování UTF-8, proto jej zde nelze otevřít.".
- V případě neočekávaných chyb při čtení z disku se zobrazí zpráva "Soubor se nepodařilo přečíst. Zkuste jej vybrat znovu.".
- Pokud celkový vstup překročí limit zpracování nástroje, zobrazí se "Vstup je větší než
{limit}, což je více, než tento nástroj dokáže zpracovat.".
Po úspěšném načtení souboru se v rozhraní zobrazí stavová zpráva "Načten soubor {name} ({size}).".
Formátování, minifikace a řazení klíčů
Nástroj nabízí tři hlavní režimy úpravy textové podoby JSON dat:
Formátování
Tato operace transformuje nepřehledný blok textu do strukturované, lidsky čitelné podoby. Uživatel si může zvolit požadovanou úroveň pro "Odsazení". Po dokončení operace se zobrazí stav "JSON byl naformátován.".
Minifikace
Při přípravě dat pro přenos po síti nebo uložení do databáze je žádoucí minimalizovat velikost souboru. Funkce pro minifikaci odstraní z dokumentu všechny nepotřebné mezery, tabulátory a konce řádků. Výsledkem je kompaktní jednořádkový řetězec, přičemž samotná datová struktura zůstává nezměněna. Po úspěšném provedení nástroj indikuje stav "JSON byl minifikován.".
Řazení klíčů
Pro usnadnění porovnávání dvou různých JSON dokumentů je k dispozici funkce "Seřadit klíče". Tato funkce rekurzivně seřadí klíče všech objektů podle pořadí kódových bodů (code-point order). Pořadí prvků v polích (arrays) se nikdy nemění, aby nedošlo k narušení sémantiky dat. Po dokončení řazení se zobrazí zpráva "Klíče seřazeny — pořadí polí zůstalo beze změny. Stisknutím Ctrl/Cmd+Z akci vrátíte.".
Interaktivní stromové zobrazení a navigace
Kromě textového režimu "Kód" nabízí nástroj také vizuální režim "Strom". Toto interaktivní zobrazení "Strom JSON" umožňuje procházet i velmi komplexní hierarchické struktury:
- Vyhledávání: Pomocí pole "Hledat klíče a hodnoty" lze v datech vyhledávat konkrétní řetězce. Nástroj zobrazuje počet shod ve formátu "
{current}z{total}" (případně "{current}z{total}+" při překročení limitu zobrazení) nebo hlášení "Žádné shody". Pro pohyb mezi výsledky slouží tlačítka "Předchozí shoda" a "Další shoda". - Ovládání uzlů: Strom lze hromadně spravovat tlačítky "Rozbalit vše" a "Sbalit vše". Jednotlivé uzly lze ovládat samostatně pomocí "Rozbalit
{key}" a "Sbalit{key}". Kořenový uzel nese označení "kořen". - Kopírování cest: Kliknutím na uzel se otevře nabídka "Možnosti kopírování pro
{key}". Zde lze zvolit "Kopírovat hodnotu", "Kopírovat JSON Pointer" (např./uzel/poduzel) nebo "Kopírovat JSONPath" (např.$.uzel.poduzel), což usnadňuje extrakci dat pro vývojáře.
Omezení stromového zobrazení
Vykreslování stromu má z výkonnostních důvodů pevné limity:
- Pokud je JSON neplatný, strom nelze zobrazit a zobrazí se výzva "Chcete-li JSON zobrazit jako strom, opravte chyby.".
- Pokud velikost dokumentu překročí limit pro vykreslení, zobrazí se "Tento JSON je příliš velký na to, aby mohl být vykreslen jako strom." nebo "Tento JSON obsahuje příliš mnoho hodnot na to, aby jej bylo možné vykreslit jako strom.".
- Při pokusu o rozbalení příliš velkého stromu nástroj omezí výstup a zobrazí "Tento JSON je příliš velký na úplné rozbalení — zobrazuje se prvních
{count}řádků." s možností načíst další položky přes tlačítko "Zobrazit dalších{count}…".
Validace a oprava syntaktických chyb
Nástroj provádí neustálou kontrolu validity syntaxe. Synchronní zpracování probíhá na pozadí do velikosti 250 000 znaků. Pokud analýza trvá neúměrně dlouho, proces se přeruší s hlášením "Kontrola tohoto JSON trvala příliš dlouho a byla zastavena. Zkuste menší dokument.".
Při detekci chyb nástroj zobrazí stav "Neplatný JSON" a přesně lokalizuje problém pomocí formátu "řádek {line}, sloupec {col}". Tlačítko "Přejít na chybu" přesune kurzor přímo na problematické místo. Velkou předností je zachování velkých celých čísel (large integers) bez ztráty přesnosti, k čemuž u běžných parserů často dochází. Duplicitní klíče v objektech jsou striktně vyhodnoceny jako chyba ("Duplicitní klíč {key} — před formátováním jeden odstraňte"), namísto toho, aby byly hodnoty tiše sloučeny nebo přepsány.
Přehled detekovaných syntaktických chyb
Nástroj dokáže identifikovat konkrétní příčiny nevalidity:
- "Mezi položkami chybí čárka"
- "Přebytečná čárka před uzavírací závorkou"
- "Klíče objektu musí být v dvojitých uvozovkách"
- "Za názvem vlastnosti chybí dvojtečka"
- "Řetězci chybí uzavírací uvozovka"
- "JSON končí příliš brzy — vypadá jako uříznutý"
- "Neočekávaný znak na místě, kde má být hodnota"
- "Tento JSON je vnořený příliš hluboko na to, aby jej bylo možné zpracovat"
Automatické opravy a nestandardní formáty
Nástroj dokáže rozpoznat běžné nestandardní formáty a nabídnout jejich automatickou konverzi na validní JSON. K dispozici je tlačítko "Zobrazit opravu", které otevře okno "Náhled opravy" s porovnáním "Původní" a "Po opravě". Pokud je dokument příliš velký, zobrazí se upozornění "Náhled je zkrácen — oprava se týká celého dokumentu.".
Nástroj detekuje tyto specifické případy:
| Detekovaný formát | Popis detekce | Akce po kliknutí na "Použít opravu" |
|---|---|---|
| Markdown blok | "Vypadá to jako JSON uvnitř bloku kódu Markdown." | "Použitím opravy zůstane jen JSON uvnitř bloku kódu." |
| Escapovaný řetězec | "Vypadá to jako JSON escapovaný uvnitř řetězce." | "Použitím opravy se řetězec převede na čistý JSON." |
| Python slovník | "Vypadá to spíše jako slovník ve stylu Pythonu než JSON." | "Použitím opravy se uvozovky a True/False/None přepíší na JSON." |
| JSON Lines | "Vypadá to jako JSON Lines — jedna hodnota na řádek." | "Použitím opravy se řádky zabalí do jednoho pole JSON." |
| JSONP callback | "Vypadá to jako JSON zabalený ve volání JSONP." | "Použitím opravy se odstraní obalující callback." |
| JSONC | "Vypadá to jako JSONC — komentáře nebo přebytečné čárky. Přepněte syntaxi na JSONC, nebo použijte opravu." | "Použitím opravy se odstraní komentáře a přebytečné čárky." |
Pokud nelze problém vyřešit programově, zobrazí se zpráva "Tento vstup se nepodařilo automaticky opravit.". Po úspěšném aplikování opravy se zobrazí "Oprava byla použita. Stisknutím Ctrl/Cmd+Z ji vrátíte.".
Často kladené otázky (FAQ)
Odesílá se můj JSON na server?
Ne. Formátovací nástroj běží kompletně ve vašem prohlížeči a váš JSON nikam neodesílá. Veškerá analýza, formátování i validace probíhají lokálně na vašem zařízení.
Co dělá minifikace?
Minifikace odstraní nepotřebné mezery a konce řádků, přičemž zachová stejná data JSON. Tím se zmenší celkový objem dat (velikost v bajtech) pro efektivnější přenos nebo ukládání.
Jaký je rozdíl mezi syntaxí JSON a JSONC?
Standardní formát JSON striktně zakazuje přítomnost komentářů (jednorádkových i vícerádkových) a přebytečných čárek na konci seznamů (trailing commas). Formát JSONC tyto prvky povoluje. Nástroj umožňuje mezi těmito režimy přepínat pomocí volby "Syntaxe".
Proč se mi zobrazuje chyba o duplicitním klíči?
Na rozdíl od některých benevolentních parserů, které při duplicitě klíče v objektu tiše přepíší původní hodnotu tou novější, tento nástroj striktně vyžaduje unikátnost klíčů. Duplicita je vyhodnocena jako syntaktická chyba, kterou je nutné před naformátováním ručně nebo automaticky odstranit.