JSON Schema Validator
I-validate ang JSON document laban sa JSON Schema sa iyong browser. Bawat error ay nakalista kasama ang instance path, keyword at schema path nito.
| # | Instance path | Keyword | Mensahe | Schema path |
|---|
Paano i-validate ang JSON laban sa schema
- I-paste ang iyong schema sa JSON Schema at ang iyong data sa JSON document, o pumili ng handang kaso mula sa Halimbawa.
- Iwanan ang Draft sa Awtomatiko ($schema) para gamitin ang bersyong pinangalanan ng
$schemang schema, o piliting gamitin ang draft 4, 7, 2019-09 o 2020-12. - Tumatakbo ang validation habang nagta-type ka; muling pinapatakbo ito ng I-validate. Ang I-format ang dalawa ay nagre-re-indent sa dalawang text.
- Basahin ang resulta: berdeng linya kapag valid ang document, kung hindi ay talahanayan ng mga error. Nasa Ingles ang mga mensahe ng error mula sa validator.
Pagbasa ng talahanayan ng error
Ang bawat hilera ay isang pumalyang tuntunin:
- Ang Instance path ay JSON Pointer sa value na pumalya. Ang
/roles/1ay ang pangalawang item ngroles; ang(root)ay ang buong document. - Ang Keyword ay ang tuntunin ng schema na pumalya:
type,required,minimum,pattern,format,additionalPropertiesat iba pa. - Ipinapaliwanag ng Mensahe ang pagpalya, halimbawa
0 is less than 1. - Tumuturo ang Schema path sa keyword sa loob ng schema, gaya ng
/properties/id/minimum, kaya mabilis mong mahahanap ang tuntunin.
Hindi humihinto ang validation sa unang problema: nakalista ang lahat ng error. Kapag pumalya ang property ng object, nag-uulat ang validator ng buod (“Property “id” does not match schema”) na sinusundan ng eksaktong dahilan. Itinatago ng Ipakita lang ang pinakatiyak na mga error ang mga buod na iyon; alisin ang check para makita ang buong hanay. Ang mga error sa ilalim ng anyOf at oneOf ay laging pinagsasama kasama ng mga tiyak na error ng bawat sanga, dahil may saysay lang ang mga ito nang magkakasama.
Ano ang suportado
- Mga draft: 4, 6 (vina-validate gamit ang mga tuntunin ng draft 7), 7, 2019-09 at 2020-12, kasama ang
$defs/definitions, lokal na$ref,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesatunevaluatedItems. - Mga format: tinitingnan ang
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointeratrelative-json-pointer. Binabalewala ang mga hindi kilalang format, gaya ng pinapayagan ng specification. - Mga reference: ang
$refay maaaring tumuro kahit saan sa loob ng schema, kasama ang$idna idineklara nito. Hindi kailanman dina-download ang mga remote schema; ang reference sa ibang URL ay iniuulat bilang hindi nalutas.
Ang tool na ito ay nagva-validate ng mga document laban sa iyong schema. Hindi nito sinusuri kung sumusunod ang schema mismo sa meta-schema, pero binabalaan ka nito tungkol sa mga hindi kilalang pangalan ng type gaya ng "strin" o "int", isang karaniwang typo na tahimik na binabalewala ng ibang validator.
Ang mga halimbawa
- Profile ng user (2020-12):
required, haba ng string,format: email,enumsa loob ngitems,uniqueItemsatadditionalProperties: false. - Listahan ng produkto na may $ref (draft-07): array na ang mga item ay tumutukoy sa
#/definitions/product, maypatternpara sa SKU at presyong mayexclusiveMinimum. - Config na may if/then (2019-09): sertipikong kailangan lang sa HTTPS mode,
oneOfsa pagitan ng email at URI, at mga limitasyong numeriko.
Bawat halimbawa ay may kasamang document na may sadyang mga pagkakamali, para makita mo kung ano ang itsura ng mga error.
Mga madalas itanong
Ina-upload ba ang data ko?
Hindi. Vina-validate sa iyong browser ang schema at ang document; walang ipinapadala sa server.
Bakit "hindi nalutas" ang $ref ng schema ko?
Ang schema lang na ipinaste mo ang kilala ng validator. Hindi masusundan ang $ref sa ibang file o URL; kopyahin ang mga tinutukoy na definition sa $defs at tumuro sa #/$defs/… sa halip.
Aling draft ang dapat kong gamitin?
Gamitin ang tinatarget ng iyong proyekto, at ideklara ito gamit ang $schema. Para sa mga bagong schema, ang 2020-12 ang kasalukuyang bersyon; ginagamit din ito ng OpenAPI 3.1.
Bakit tinatanggihan ng integer ang 2.0?
Hindi nito tinatanggihan: itinuturing ng JSON Schema na integer ang 2.0 dahil buo ang halaga nito. Pumapalya ang 2.5 sa "type": "integer".
Gumagana ba ito offline?
Oo. Kapag na-load na ang page at nakapagpatakbo ka na ng unang validation (na naglo-load ng validator), hindi na kailangan ng koneksyon.
Mga kaugnay na tool
- JSON Formatter at Validator Libreng JSON formatter at validator na nagbi-beautify, nagmi-minify at nagsusuri ng JSON sa iyong browser, may ulat ng syntax error ayon sa linya at column.
- JSONPath Tester Subukan ang mga JSONPath expression sa sarili mong JSON sa browser. May mga filter, slice, recursive descent, path at JSON Pointer, at handang halimbawa.
- JSON to YAML Converter I-convert ang JSON sa YAML at YAML sa JSON sa iyong browser, suportado ang anchor, merge key at mga file na maraming document. Walang ina-upload.