Od platného JSON k platným datům
Text {"vek":"dvacet"} je syntakticky platný JSON. Pro API, které očekává celé číslo, ale může být nepoužitelný. Schéma popíše typ, povinné vlastnosti, meze i povolené kombinace. Použiješ ho při příjmu API požadavku, pro konfiguraci nebo pro kontrolu exportu.
První schéma
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.cz/schema/zakaznik",
"type": "object",
"properties": {
"jmeno": {
"type": "string",
"minLength": 1
},
"vek": {
"type": "integer",
"minimum": 0
},
"telefon": {
"type": [
"string",
"null"
]
}
},
"required": [
"jmeno"
],
"additionalProperties": false
} type vyžaduje objekt. properties určuje pravidla pro přítomné vlastnosti. Teprve required vyžaduje jméno. additionalProperties: false odmítá další názvy. Telefon může chybět, být řetězec nebo mít hodnotu null.
Standardní validace hodnoty nepřetypovává. Oprav vstup na číslo; neposuzuj řetězec jako celé číslo jen podle vzhledu.
$schema, $id a meta schéma
$schema určuje verzi pravidel (dialekt) a adresu metaschématu, které popisuje povolený zápis schématu. $id identifikuje schéma a nastavuje základ pro relativní odkazy. Není příkazem ke stažení souboru. Schéma je objekt s pravidly nebo logická hodnota: true přijme všechno, false nic.
Meta schéma kontroluje samotný zápis schématu. Samotné úspěšné sestavení validátoru nemusí odhalit překlep v neznámém klíčovém slově. V produkci kontroluj i schémata a používej přísný režim knihovny, pokud jej nabízí.
Jak pokračovat
- Klíčová slova: objekty, pole, čísla, řetězce a podmínky.
- Skládání schémat: odkazy, alternativy a uzavírání objektů.
- Verze: migrace z Draft 7 a 2019-09.
- XSD vs JSON Schema: rozdíly datových modelů.
Verze a omezení nástroje
K 1. 10. 2026 uvádí oficiální přehled jako aktuální publikovanou verzi 2020-12. Část Core popisuje vyhodnocování, odkazy a skupiny klíčových slov. Část Validation popisuje kontroly hodnot a popisné údaje, například title a description. Jde o specifikaci projektu, nikoli vydané RFC.
Nástroj XML.cz používá 2020-12 jako výchozí dialekt a rozpoznává také starší podporované dialekty podle $schema. Externí odkazy se automaticky nestahují. Generované schéma z jednoho vzorku je návrh: povinná pole a povolené rozsahy hodnot urči podle skutečných požadavků aplikace.
Všechny kapitoly sekce
Vyber si téma podle toho, co potřebuješ vyřešit. Seznam obsahuje i kapitoly, které se nevejdou do hlavního menu.
- Klíčová slova Typy, properties, required, items, prefixItems, contains, format a podmínky if/then/else v JSON Schema 2020-12.
- Skládání schémat Znovupoužití přes $defs a $ref, allOf/anyOf/oneOf/not a uzavírání složených objektů pomocí unevaluatedProperties.
- Verze a kompatibilita Praktické rozdíly dialektů, migrace n-tic na prefixItems, přejmenování definitions a kontrola kompatibility.
Vyzkoušej schéma na čtyřech vstupech
Vlož schéma zákazníka z úvodu do editoru schématu v JSON nástroji. Potom postupně zkoušej tato data:
{"jmeno":"Jana","vek":20}projde: telefon je nepovinný.{"vek":20}neprojde: chybí jmeno.{"jmeno":"Jana","vek":"20"}neprojde: věk je text místo celého čísla.{"jmeno":"Jana","role":"admin"}neprojde: schéma nepovoluje pole role.
Tyto chyby se týkají obsahu dat, nikoli zápisu JSON. Všechny čtyři dokumenty jsou syntakticky platné; liší se tím, zda splňují pravidla pro zákazníka. Při diagnostice si přečti cestu k hodnotě a porušené pravidlo. Typy a required popisuje JSON Schema Validation. Pravidlo additionalProperties je v Core.