JSON Type Definition (JTD) è uno schema per definire la struttura dei dati JSON. L'obiettivo principale di JTD è la semplicità, la portabilità e la leggibilità, sia per gli umani che per le macchine. A differenza di altri linguaggi di schema come JSON Schema, JTD si concentra unicamente sulla definizione della struttura dei dati e non include funzionalità di validazione elaborate o meccanismi complessi di constraint.
Ecco alcuni concetti chiave di JTD:
Tipi base: JTD fornisce un insieme di tipi base come string
, boolean
, timestamp
, int8
, uint8
, int16
, uint16
, int32
, uint32
, float32
, float64
.
Nullabile: Permette che un valore sia null
usando il tipo nullable
.
Enum: Permette di specificare un insieme di valori stringa validi.
Array: Definisce un array di elementi dello stesso tipo.
Oggetti: Definisce un oggetto con proprietà specifiche. Le proprietà possono essere required o optional.
Discriminatori: Permette di creare schemi che possono avere diverse strutture a seconda del valore di un determinato campo (il discriminatore).
Referenze: Permette di riutilizzare definizioni di schema tramite referenze.
JTD è progettato per essere facile da imparare e implementare, rendendolo una scelta ideale per applicazioni in cui la semplicità e la portabilità sono prioritarie. Nonostante la sua semplicità, JTD può essere utilizzato per definire schemi per dati JSON complessi.