Formátovač JSON

Náš formátovač JSON je rychlý a bezplatný online nástroj pro vývojáře k formátování, ověřování a zmenšování dat JSON. Vložte svůj JSON a okamžitě uvidíte jeho přehlednou podobu se zvýrazněním syntaxe. Validátor přesně určuje umístění chyb pomocí čísel řádků, což usnadňuje opravu chybného JSON. Podporuje odsazení na 2 mezery, 4 mezery a tabulátory, plus zmenšení jedním kliknutím pro produkční použití. Veškeré zpracování probíhá ve vašem prohlížeči – váš JSON, včetně citlivých dat, nikdy neopustí stránku.

star 4.9
auto_awesome AI
New

Formátovač JSON calculator

info Paste JSON to format
0 lines 0 B 0 keys depth 0

lightbulb Tips

  • •JSON keys must use double quotes
  • •Trailing commas are not valid JSON
  • •Use 2-space indent for most projects
  • •Minify JSON for API payloads

Jak formátovat, ověřit a zmenšit JSON ve 3 krocích

content_paste

Vložit JSON

Vložte svůj surový nebo nepřehledný JSON do vstupního editoru. Podporuje jakýkoliv platný (nebo neplatný) text JSON.

code

Formátovat nebo zminifikovat

Kliknutím na Formátovat upravíte vzhled pomocí zvoleného odsazení, nebo na Zminifikovat pro kompresi. Chyby se zvýrazní automaticky.

content_copy

Kopírovat výsledek

Kliknutím na tlačítko Kopírovat zkopírujete zformátovaný JSON do schránky. Můžete jej použít ve svém kódu, požadavcích API nebo konfiguračních souborech.

bug_report

Opravit chyby

Pokud je JSON neplatný, chybová zpráva ukazuje přesný řádek a pozici. Opravte problém a proveďte formátování znovu.

The Formula

Formátování JSON funguje tak, že se nezpracovaný řetězec JSON převede na objekt JavaScriptu (čímž se ověří jeho platnost) a poté se znovu serializuje s patřičným odsazením. Pokud analýza selže, chybová zpráva obsahuje pozici syntaktické chyby. Zmenšení velikosti (minifikace) odstraní veškeré bílé znaky tím, že nepoužije žádné odsazení.

JSON.parse(input) → JSON.stringify(parsed, null, indent)

lightbulb Variables Explained

  • input Nezpracovaný řetězec JSON k formátování
  • JSON.parse() Ověří a analyzuje JSON — v případě neplatnosti vyvolá chybu
  • JSON.stringify() Převede analyzovaný objekt zpět na formátovaný řetězec
  • indent Počet mezer (2 nebo 4) nebo znak tabulátoru pro odsazení

tips_and_updates Pro Tips

1

Použijte odsazení na 2 mezery pro kompaktní soubory, 4 mezery pro lepší čitelnost

2

Zmenšete JSON před odesláním v požadavcích API, abyste snížili velikost přenášených dat

3

Běžné chyby: koncové čárky, jednoduché uvozovky a klíče bez uvozovek nejsou platný JSON

4

Použijte Ctrl+A pro výběr všeho a poté vložte – formátovač si poradí s jakýmkoli bílým místem

5

Klíče JSON musí být vždy v uvozovkách (stringy) – {key: value} není platný JSON

6

Pole a objekty mohou být prázdné: [] a {} jsou platný JSON

7

null, true, false jsou platné hodnoty JSON – ale undefined a NaN nikoli

8

RFC 8259 vyžaduje kódování UTF-8 – ne-ASCII znaky escapujte pomocí \uXXXX, pokud váš přenos podporuje pouze ASCII

9

Před porovnáním dvou souborů JSON seřaďte klíče objektu abecedně pro čistší sadu změn

10

Pro velmi velké soubory upřednostněte streamovací parsery (jq, ijson, Jackson Streaming) před JSON.parse

Okamžitě formátujte, ověřujte a minifikujte JSON se zvýrazněním syntaxe, čísly chybových řádků a kopírováním jedním kliknutím. Veškeré zpracování probíhá ve vašem prohlížeči — vkládejte odpovědi API, datové payloady JWT nebo citlivou konfiguraci, aniž by opustily vaše zařízení. Níže: jak funguje formátovač, specifikace JSON, podle které se ověřuje (RFC 8259 / ECMA-404), a podrobné informace o schématu JSON, JSONPath, JSON Lines, JSON5 a bezpečnostních úskalích, která by měl znát každý vývojář.

Online formátovač JSON: Přehledné zobrazení a úprava libovolného JSONu

Vložte kompaktní, minifikovaný nebo neuspořádaný JSON a získejte okamžitě perfektně odsazený výstup. Formátovač analyzuje váš JSON pomocí nativní funkce prohlížeče JSON.parse (podle normy ECMA-404), zachovává znaky Unicode a znovu jej vykreslí s vámi zvoleným odsazením:

  • 2 mezery (výchozí pro npm a prettier)
  • 4 mezery
  • tabulátor

Vnořené objekty a pole jsou správně odsazeny v každé úrovni. Klíče, řetězce, čísla, pravdivostní hodnoty a hodnota null mají odlišné barvy pro zvýraznění syntaxe, takže strukturu můžete zkontrolovat na jediný pohled.

Označení „beautifier“ (vylepšovač) je zaměnitelné s výrazy „formatter“ (formátovač) nebo „pretty printer“ — všechny popisují stejnou operaci: vytvoření lidsky čitelného JSONu z kompaktního vstupu.

Jak ověřit JSON: Shoda s RFC 8259 a běžné chyby

Ověřování probíhá přímo během psaní. Pokud se váš JSON nepodaří analyzovat, formátovač ukáže přesný řádek, sloupec a to, co analyzátor očekával.

Ověřování je přísné podle normy RFC 8259 (internetový standard IETF) a ECMA-404 — žádné komentáře, žádné koncové čárky, žádné jednoduché uvozovky, žádné klíče bez uvozovek, žádné NaN, žádné Infinity, žádné undefined. Hodnota na nejvyšší úrovni může být libovolnou hodnotou JSON (objekt, pole, řetězec, číslo, true, false, null).

Pro vstup kódovaný v UTF-8 přijímá formátovač celou sadu znaků Unicode; prostředí podporující pouze ASCII by měla používat únikové sekvence \uXXXX.

Běžné chyby a jejich opravy:

  • koncová čárka za posledním prvkem pole/objektu (odstraňte ji)
  • jednoduché uvozovky kolem klíčů nebo řetězců (nahraďte je dvojitými uvozovkami)
  • chybějící uzavírací složená nebo hranatá závorka (sloupec chyby ukazuje blízko místa zkrácení)
  • neuvedené řídicí znaky v řetězcích (zapište je pomocí \n, \t, \\)

Minifikátor JSON: Snížení velikosti dat pro rozhraní API a produkci

Minifikace odstraní všechny nevýznamné bílé znaky — mezery mezi tokeny, odsazení a nové řádky — čímž ponechá nejkompaktnější možnou reprezentaci. Typická úspora je 20–60 % v závislosti na tom, jak moc byl váš zdrojový JSON odsazený.

Minifikovaný JSON použijte pro:

  • odpovědi rozhraní REST/GraphQL API
  • zprávy WebSocket
  • datové payloady JWT
  • konfigurační bloby SaaS
  • vložené datové atributy v HTML

Formátovaný (přehledně zapsaný) JSON si ponechte pro:

  • konfigurační soubory pod správou zdrojového kódu
  • testovací data (fixtures a snapshots)
  • dokumenty upravované lidmi

Minifikovaný JSON je stále 100% standardní JSON — přijme jej každý vyhovující analyzátor. Zdejší minifikátor zachovává data přesně: žádné přuspořádávání klíčů, žádná konverze hodnot, žádná ztráta přesnosti u čísel v rozsahu dvojité přesnosti IEEE 754.

Ověření schématu JSON: Kontrola typů, povinných polí a výčtů (enum)

Samotné ověření syntaxe JSON kontroluje pouze to, zda lze dokument analyzovat. Schéma JSON (JSON Schema) ověřuje tvar dokumentu — tedy že „email“ je řetězec, „age“ (věk) je celé číslo 0–150, „role“ je jednou z hodnot ['admin', 'user', 'guest']. Samotné schéma je dokumentem JSON popisujícím omezení; instance jsou ověřovány proti němu.

Běžná klíčová slova: type, required, properties, items, enum, pattern (regex), minimum/maximum, minLength/maxLength, format (email, date-time, uri).

Referenční implementace:

  • Ajv (JavaScript, nejrychlejší)
  • jsonschema (Python)
  • networknt/json-schema-validator (Java)
  • justinrainbow/json-schema (PHP)

Ověřování schémat zachytí obrovské množství chyb na hranici rozhraní API: chybějící povinné položky, špatné typy, hodnoty mimo rozsah, nesprávně formátovaná data. Specifikace OpenAPI 3.x využívají schéma JSON pro ověřování požadavků a odpovědí.

Tutoriál k JSONPath: Vyhledávání a extrakce hodnot z vnořeného JSONu

JSONPath je pro JSON tím, čím je XPath pro XML — dotazovacím jazykem pro navigaci a extrakci z vnořeného JSONu.

Syntaxe:

  • $ (kořen)
  • . (potomek)
  • .. (rekurzivní sestup)
  • [n] (index pole)
  • [start:end] (výřez / slice)
  • [?(expression)] (filtr)
  • * (zástupný znak / wildcard)

Příklady na typickém JSONu obchodu:

  • $.store.book[0].title získá název první knihy
  • $..author vrátí každého autora v celém dokumentu
  • $.store.book[?(@.price < 10)] vyfiltruje knihy levnější než 10
  • $.store..price[*] sloučí všechny ceny do jednoho pole

Nástroje: jq (mírně odlišná syntaxe, ale stejné schopnosti, dominantní ve skriptech shellu), testovací skripty Postman, JMESPath (--query v AWS CLI) a knihovny JSONPath v každém významném programovacím jazyce.

JSON Lines (JSONL): JSON oddělený novými řádky pro logy a datové proudy

JSON Lines (jsonlines.org), známý také jako NDJSON nebo LDJSON, je formát, kde každý řádek představuje samostatnou, kompletní hodnotu JSON. Soubor jako celek není platným JSONem – každý řádek sám o sobě však ano.

Hojně se využívá pro streamování logů (Loki, Splunk HEC, Vector), ETL pipeliny, trénovací data pro strojové učení (soubory pro fine-tuning v OpenAI) a jakékoli datové toky typu append-only (zápis pouze na konec).

Výhody:

  • ideální pro streamování (parsování po jednom záznamu, konstantní spotřeba paměti)
  • append-only (stačí jednoduše připsat další řádek)
  • snadno filtrovatelný standardními unixovými nástroji grep a awk

Přípony souborů: .jsonl, .ndjson. Převod z pole JSON pomocí `jq -c '.[]'`; převod na pole JSON pomocí `jq -s` (slurp). BigQuery, Athena, Snowflake a většina moderních datových skladů podporuje import NDJSON nativně.

JSON5 vs. JSON: Kdy bezpečně použít který formát

JSON5 (json5.org) rozšiřuje JSON o prvky usnadňující vývojářům práci:

  • komentáře (// a /* */)
  • koncové čárky za posledním prvkem
  • řetězce v jednoduchých uvozovkách
  • klíče bez uvozovek
  • víceřádkové řetězce (s lomítkem na konci řádku)
  • hexadecimální čísla
  • speciální hodnoty IEEE 754 (NaN, Infinity)

NENÍ kompatibilní s funkcí JSON.parse – vyžaduje specializovaný parser pro JSON5 (npm balíček json5, PyJson5).

JSON5 používejte pro ručně upravované konfigurační soubory, kde se hodí komentáře: babel.config.json5, konfigurace některých buildovacích nástrojů, .vscode/settings.json (který využívá JSONC, příbuzný dialekt JSONu s komentáři).

Striktního formátu JSON se držte u: HTTP API, výměny dat, úložných formátů a všeho strojově generovaného. Kombinování obou formátů mate nástroje – zvolte pro daný soubor jeden z nich a toho se držte.

Časté chyby v JSONu: Koncové čárky, jednoduché uvozovky a kódování

Nejčastější chyby při parsování JSONu a jejich řešení:

  • (1) Čárka za posledním prvkem – `{"a":1,}` nebo `[1,2,3,]` – přebytečnou čárku odstraňte.
  • (2) Jednoduché uvozovky u klíčů nebo řetězcových hodnot – `{'name':'Alice'}` – musí být použity dvojité uvozovky.
  • (3) Klíče bez uvozovek – `{name:"Alice"}` – vložte je do uvozovek.
  • (4) Komentáře uvozené // nebo /* */ – striktní JSON je nepovoluje; odstraňte je, nebo přejděte na JSON5/JSONC.
  • (5) Hodnoty z JavaScriptu, které v JSONu neexistují – undefined, NaN, Infinity, funkce – nahraďte hodnotou null nebo odstraňte.
  • (6) Neúplný nebo useknutý vstup – parser obvykle ukáže na řádek, kde neočekávaně skončil obsah.
  • (7) BOM (byte-order mark) na začátku UTF-8 souboru – většina parserů jej odmítne; odstraňte pomocí `sed -i '1s/^\xEF\xBB\xBF//'`.
  • (8) Kombinování tabulátorů a mezer sice parsování nerozbije, ale komplikuje diffy – zvolte si jeden styl odsazování.

Bezpečnost v JSONu: Prototype pollution, eval a bezpečné parsování

Tři kategorie zranitelností souvisejících s JSONem, kterým by měl rozumět každý vývojář.

  • (1) Prototype pollution: sloučení nedůvěryhodného JSONu do existujícího objektu může kompromitovat Object.prototype, pokud vstup obsahuje klíče __proto__, constructor nebo prototype – což ovlivní všechny objekty v běhovém prostředí. Používejte Object.create(null), structuredClone nebo knihovny jako defaultsDeep z balíčku lodash, které tyto klíče výslovně blokují.
  • (2) K parsování JSONu nikdy nepoužívejte eval() – eval vykonává libovolný javascriptový kód, zatímco JSON.parse běží v bezpečném sandboxu. Mýtus o tom, že „eval je rychlejší“, byl vyvrácen už před lety.
  • (3) Úskalí opakované serializace: JSON.stringify u objektů tiše vynechává funkce, hodnoty undefined a Symbol (v polích je převádí na null). Ve výchozím nastavení také vyvolá výjimku při cyklických odkazech a hodnotách typu BigInt.

Nedůvěryhodný JSON před zpracováním validujte pomocí JSON Schema, nastavte maximální velikost těla požadavku na svém API a kontrolujte hlavičku Content-Type, abyste včas odmítli vstupy, které nejsou ve formátu JSON. Kompletní přehled nabízí příručka REST Security Cheat Sheet od organizace OWASP.

Převod JSON do YAML, CSV a XML: Průvodce konverzí formátů

JSON ↔ YAML představuje nejméně ztrátovou konverzi – oba formáty podporují vnořené objekty i pole. Dávejte pozor na automatické přetypování v YAML (hodnoty yes/no/on/off se stávají booleovskými, čísla bez uvozovek zůstávají čísly, řetězcový literál 'null' se změní na null) – nejednoznačné hodnoty uzavírejte do uvozovek. Nástroje: js-yaml (npm), PyYAML, yq.

JSON → CSV vyžaduje zploštění vnořené struktury – funguje nejlépe pro pole plochých objektů. Zvolte strategii pro vnořené hodnoty: převod na řetězec (stringify – zápis JSONu přímo do buňky) nebo sloupce s tečkovou notací (`address.city`, `address.zip`). Nástroje: in2csv z csvkit, pd.json_normalize v pandas, json2csv (npm).

JSON → XML je pro stromové struktury přímočarý, ale stírá rozdíl mezi polem a objektem – sourozenecké elementy v XML mohou reprezentovat obojí. Pozor na neplatné názvy elementů XML (nesmí začínat číslicí ani obsahovat mezery). Nástroje: xml-js, xmltodict (Python).

U všech konverzí se předem rozhodněte, zda chcete zachovat informace o datových typech, nebo vše převést na řetězce.

Práce s velkými soubory JSON: Streamovací parsery a tipy pro správu paměti

JSON.parse načítá do paměti celý dokument najednou – což bez problémů vyhovuje pro běžné odpovědi z API, ale stává se problematickým u souborů větších než několik set megabajtů. Streamovací parsery zpracovávají jeden token (nebo jeden záznam) po druhém a udržují konstantní využití paměti bez ohledu na velikost souboru.

  • JavaScript: stream-json nebo oboe.js pro parsování ve stylu SAX.
  • Python: ijson pro inkrementální parsování, případně soubor nejprve převeďte na JSON Lines a čtěte řádek po řádku.
  • Java: Jackson Streaming API (JsonParser).
  • Shell: jq zpracovává proudový JSON pomocí parametru --stream.

Pokud generujete soubory jako pole záznamů v JSONu, zvažte úpravu generátoru tak, aby místo toho zapisoval JSON Lines – usnadní to práci všem navazujícím konzumentům. Když už musíte obrovské pole JSON zpracovávat v paměti, raději záznamy procházejte iterativně a průběžně je uvolňujte, než abyste vytvářeli paralelní datové struktury. Hlídejte si velikost haldy (heap size), v Node.js nastavte parametr --max-old-space-size a před optimalizací vždy profilujte.

Tahák pro formátování JSON: Odsazení, řazení klíčů, diff a escapování

Rychlý přehled pro každodenní práci s JSONem.

  • Odsazení: prettier a npm mají jako výchozí 2 mezery; zvolte 4 pro podnikové projekty, které 4 mezery používají napříč jazyky; tabulátory jsou platné, ale v JSONu se používají zřídka.
  • Řazení klíčů (pro přehlednější diffy): JSON.stringify(obj, Object.keys(obj).sort(), 2) pro mělké objekty; jq --sort-keys pro hlubokou rekurzi; Python json.dumps(obj, sort_keys=True).
  • Porovnání dvou souborů JSON (diff): seřaďte oba soubory pomocí jq --sort-keys a poté spusťte běžný diff; nebo použijte json-diff (npm), DeepDiff (Python), případně vestavěné porovnávání souborů ve VS Code s podporou JSONu.
  • Řídicí sekvence v řetězcích: \\" (dvojitá uvozovka), \\\\ (zpětné lomítko), \\/ (lomítko, volitelné), \\b (backspace), \\f (posun o stránku), \\n (nový řádek), \\r (návrat vozíku), \\t (tabulátor), \\uXXXX (kódový bod Unicode).
  • Čísla: JSON povoluje desetinná čísla a exponenty (1.5e3), ale nepovoluje úvodní nuly (0123 je neplatné) ani koncovou desetinnou tečku (1. je neplatné).
  • Řetězce musí být v dvojitých uvozovkách – jednoduché uvozovky podporuje pouze JSON5.
code

Embed this Formátovač JSON on your site

Free for any site. Copy the snippet below and paste into your HTML — no attribution required beyond the built-in credit link.

<iframe src="https://calculators.im/embed/json-formatter" width="100%" height="720" style="border:0;max-width:100%;" loading="lazy" title="Formátovač JSON by Calculators.im"></iframe>
<p style="font-size:12px;text-align:center;color:#64748b;margin-top:6px;">Powered by <a href="https://calculators.im/json-formatter?utm_source=embed&utm_medium=snippet&utm_campaign=json-formatter">Formátovač JSON</a> by Calculators.im</p>
open_in_new Preview embed Auto-resizing iframe. Mobile responsive. Works with WordPress, Ghost, Webflow, and plain HTML.

Frequently Asked Questions

sell

Tags