TK TaskKit
Strumenti per dev

Validatore JSON Schema

Valida JSON contro uno schema con percorsi di errore completi. Draft-07 e 2020-12, controlli di formato, modalità tutti-gli-errori.

Schema
Dati
Validazione

Impossibile compilare lo schema: Code generation from strings disallowed for this context

Gli input restano su questo dispositivo. Ogni strumento per dev di TaskKit gira interamente nel tuo browser. Token, payload e testo incollato non vengono trasmessi ai server di TaskKit né a terze parti.

Cosa fa questo strumento

Valida un documento JSON contro un JSON Schema, restituendo « valido » o una lista di errori con il path di istanza e il path di schema esatti per ogni fallimento. Supporta sia Draft-07 che Draft 2020-12, auto-rilevati dal campo $schema dello schema, con override manuale. I controlli di formato (email, uri, date-time, uuid, ecc.) sono attivi.

Quando usarlo

  • Progettare un nuovo schema e provarlo contro payload rappresentativi.
  • Diagnosticare perché la tua API ha rifiutato una richiesta — il body corrisponde davvero ai docs?
  • Verificare che un file di config segua lo schema del tuo team prima di committarlo.
  • Migrare tra Draft-07 e 2020-12 e controllare che niente si sia rotto.

Come funziona

Sotto il cofano si usa Ajv (il validatore JSON Schema dietro la maggior parte del tooling JS), pinnato in modalità tutti-gli-errori in modo che tu veda ogni problema in una volta invece di fermarsi al primo. I controlli di formato vengono da ajv-formats. Sia schema che dati vengono parsati in locale; niente viene inviato da nessuna parte.

Selezione del draft: se lo schema ha "$schema": "https://json-schema.org/draft/2020-12/schema" usiamo il dialetto 2020-12; "http://json-schema.org/draft-07/schema#" seleziona Draft-07. Senza $schema, il default è Draft-07 perché è ancora il più comune in natura.

Note

additionalProperties di default è permesso — è giusto? Sì, secondo la spec. Se vuoi proibire campi extra, imposta "additionalProperties": false esplicitamente. È la causa singola più comune delle sorprese « pensavo che il mio schema fosse strict ».

Qual è la differenza tra Draft-07 e 2020-12? 2020-12 rilavora i riferimenti ($dynamicRef), divide items in items e prefixItems, e cambia come viene gestito additionalItems. La maggior parte degli schema quotidiani funziona in entrambi, ma se usi la validazione di tuple, la sintassi è incompatibile.

Perché la mia regex pattern corrisponde a cose diverse in validatori diversi? JSON Schema specifica la sintassi regex ECMA-262 (il flavor JavaScript). I validatori in altri linguaggi traducono, a volte imperfettamente. Testa i pattern nel Tester regex per essere sicuro.

Strumenti correlati