Se utilizzi modelli linguistici di grandi dimensioni (LLM) come GPT-4, Claude o Google Gemini per elaborare dati strutturati, è molto probabile che oggi tu stia usando JSON come formato di input e output. JSON è lo standard de facto per lo scambio dati tra sistemi grazie alla sua semplicità, alla diffusione enorme e al supporto nativo praticamente ovunque.
Nel contesto dei prompt per l’AI, però, JSON può diventare sorprendentemente inefficiente: ogni parentesi graffa {}, ogni quadra [], ogni virgoletta " e ogni chiave ripetuta conta come token quando viene inviato a un LLM. In un prompt corposo, questi caratteri di sintassi “invisibili” possono far lievitare il conteggio di token (e quindi i costi) senza aggiungere reale informazione. Da qui nasce l’idea di un formato più snello per dialogare con i modelli.
Questo bisogno ha portato alla creazione di TOON (Token-Oriented Object Notation), un nuovo formato dati open-source progettato apposta per i modelli AI. Presentato nell’ottobre 2025, TOON ha guadagnato popolarità rapidissima grazie alla promessa di ridurre del 30–60% i token necessari nei prompt rispetto all’equivalente JSON, mantenendo però la stessa struttura informativa.
Cos’è TOON e perché è nato
TOON è un formato di serializzazione dei dati compatto e leggibile (sia per umani che per modelli) che rappresenta le stesse strutture di JSON ma con una sintassi ottimizzata per minimizzare i token.
In altre parole, TOON conserva esattamente le stesse informazioni di un JSON equivalente (è lossless, convertibile avanti e indietro senza perdite), ma elimina punteggiatura superflua e ridondanza sintattica che pesano sui prompt per LLM. Un modo semplice per descriverlo è: “come JSON, ma riscritto con la grammatica preferita dai modelli AI”.
Formati come JSON, XML o YAML non sono nati per interagire con modelli linguistici, ma per far comunicare sistemi software. Di conseguenza includono molte strutture sintattiche ridondanti (parentesi, virgole, virgolette, chiavi ripetute) utili ai parser tradizionali ma non davvero necessarie a un LLM.
Un modello AI “vede” il testo come una sequenza di token e non trae benefici particolari da caratteri di formattazione: se in un JSON hai 100 oggetti, ciascuno con 10 campi, i nomi di quei campi verranno ripetuti 100 volte. All’aumentare della dimensione dei prompt, questa inefficienza diventa un costo nascosto significativo.
TOON nasce per risolvere proprio questo problema, con alcune idee chiave:
-
Niente parentesi e virgole: TOON elimina completamente
{},[]e molte virgole separatrici, sostituendole con rientri (indentazione) e una sintassi tabellare. -
Niente doppi apici per le chiavi: i nomi dei campi non sono racchiusi tra virgolette, riducendo ulteriormente la verbosità.
-
Indentazione gerarchica: come in YAML, i rientri definiscono la struttura annidata, al posto delle parentesi graffe.
-
Liste in formato tabellare: gli array di oggetti assumono una forma “a tabella”: si dichiara una sola volta la lista dei campi (l’intestazione) e poi si elencano i valori riga per riga. Questo elimina ripetizioni inutili.
-
Marker di lunghezza espliciti: ogni array dichiara in apertura quanti elementi contiene (es.
[10]), così il modello non deve dedurre o contare il numero di elementi. -
Conversione bidirezionale: qualunque JSON valido può essere convertito in TOON e viceversa senza perdita di informazioni, fungendo da “traduttore” per i dati da inviare ai modelli (e per leggere le risposte).
Esempio pratico: JSON vs TOON a confronto
Per vedere la differenza in pratica, osserviamo un semplice esempio di dati.
JSON classico
Supponiamo di avere un oggetto con una lista di utenti:
{TOON equivalente
"utenti": [
{ "id": 1, "nome": "Alice", "ruolo": "admin" },
{ "id": 2, "nome": "Bob", "ruolo": "user" }
]
}
Gli stessi dati vengono scritti in TOON così:
utenti[2]{id,nome,ruolo}:
1,Alice,admin
2,Bob,user
L’oggetto utenti dichiara subito di contenere [2] elementi e definisce, nella testata {id,nome,ruolo}, i campi validi per tutti. Nelle righe successive compaiono soltanto i valori, nell’ordine specificato.
Non ci sono parentesi graffe o quadre, né virgolette attorno alle chiavi. Il significato informativo è identico, ma la versione TOON è composta da molti meno simboli e, in questo caso concreto, richiede meno della metà dei token rispetto al JSON tradizionale.
TOON vs. JSON:
| Caratteristica | JSON (JavaScript Object Notation) | TOON (Token-Oriented Object Notation) |
|---|---|---|
| Sintassi | Richiede {}, [], , e " per chiavi e stringhe. |
Elimina {}, [] e molte , non necessarie. Usa indentazione; le chiavi non richiedono virgolette. |
| Efficienza in termini di token | Molto verboso, specialmente con array di oggetti (chiavi ripetute). Alto consumo di token. | Ottimizzato per minimizzare i token. Risparmio tipico del 30–60% rispetto al JSON equivalente. |
| Gestione delle liste | Ogni oggetto nell’array ripete struttura e chiavi. | Formato “tabellare”: le chiavi (intestazione) sono dichiarate una sola volta all’inizio della lista. |
| Guida per l’AI | L’AI deve interpretare l’intera sintassi per dedurre la struttura. | Fornisce “guardrail”: lunghezza [N] e schema {campi} espliciti, riducendo errori di parsing. |
| Leggibilità umana | Standard universale, ma può diventare difficile da leggere se molto annidato o ripetitivo. | Alta leggibilità, simile a YAML. La struttura tabellare per le liste è immediatamente chiara. |
| Caso d’uso principale | Standard de facto per API, file di configurazione, scambio dati tra sistemi. | Specializzato per prompt LLM: invio e ricezione di dati strutturati da/a modelli AI. |
Vantaggi e caratteristiche di TOON
Implementando le idee sopra, TOON offre una serie di vantaggi concreti per chi lavora con i modelli AI:
-
Riduzione del numero di token
È il beneficio più evidente. Nella pratica, TOON permette di utilizzare tipicamente dal 30% al 60% di token in meno rispetto al JSON equivalente. In benchmark su dataset ampi e omogenei, i risparmi sono consistenti: ad esempio, per 10.000 record utente, TOON può richiedere circa 4.500 token per la sintassi contro i ~10.000 di un JSON strutturato in modo classico. Meno token significa meno costi e risposte più rapide. -
Leggibilità per umani e AI
TOON mantiene una struttura chiara. La sintassi indentata e la forma tabellare facilitano la scansione visiva. Per il modello, l’input è più facile da interpretare perché privo di “rumore” sintattico; ogni token presente è più informativo. In diversi test è emerso che TOON può persino migliorare leggermente la precisione con cui l’AI estrae o riassume informazioni rispetto all’equivalente JSON. -
Meno errori di parsing
Dichiarando esplicitamente lo schema e la lunghezza delle liste, TOON fornisce all’LLM delle guide rigide e prevedibili. Il modello sa quali campi includere e quanti elementi attendersi, cosa che riduce la probabilità di output malformati (campi mancanti, sintassi rotta, righe incomplete). Questo è particolarmente utile quando si chiede all’AI di restituire dati strutturati che devono poi essere processati automaticamente dal tuo codice. -
Compatibilità e conversione semplice
Adottare TOON non significa abbandonare JSON. Puoi continuare a utilizzare JSON in tutta la tua applicazione (API, database, file di configurazione) e semplicemente convertirlo in TOON al momento di inviarlo al modello, per poi decodificare di nuovo in JSON l’eventuale risposta.
TOON supporta gli stessi tipi di dati base di JSON (stringhe, numeri, boolean, null) e le stesse strutture annidate. Dove possibile comprime in formato tabellare; dove non è possibile, la struttura ricorda comunque YAML mantenendo chiarezza e compatibilità.
In sintesi, TOON non sostituisce JSON in tutti gli ambiti: JSON resta insostituibile per configurazioni complesse, API e scambio dati tra sistemi. TOON va visto come uno strumento specializzato, da usare quando il tuo interlocutore è un modello AI e il costo/token conta.
Quando utilizzare TOON
TOON dà il meglio di sé in scenari con dati strutturati omogenei, tipo tabellare, non troppo annidati. Alcuni casi d’uso tipici:
-
Liste uniformi “tipo Excel”
Se i tuoi dati assomigliano a una tabella con righe simili (elenco utenti, catalogo prodotti, registro di log, lista ordini, inventario, ecc.), TOON è particolarmente efficace. Eviti di ripetere per ogni elemento gli stessi nomi di campo, dichiarando l’header una sola volta. -
Prompt con elenchi o tabelle
Se devi passare a un LLM una lista di elementi con struttura fissa per farci analisi, filtro, clustering o riassunti, TOON ti consente di includere nel contesto molti più elementi a parità di token. Puoi, ad esempio, far leggere al modello un catalogo prodotti, un dataset di recensioni o un log di eventi in forma compatta. -
Dataset omogenei di grandi dimensioni
Per attività di training, test o valutazione su LLM con molti esempi strutturati (prompt tabellari, Q&A su dati, ecc.), TOON permette di iniettare nel modello più esempi per ogni finestra di contesto. Più il dataset è grande e regolare, più i benefici diventano significativi.
In breve, se i tuoi dati assomigliano a un foglio di calcolo, TOON è probabilmente la scelta giusta.
Quando evitare TOON
TOON non è sempre la soluzione ottimale. Ci sono casi in cui è meglio rimanere con JSON:
-
-
Dati profondamente annidati
Se la struttura è gerarchica a molti livelli (un “albero di Natale” con molti sotto-oggetti e sotto-liste), TOON può diventare meno chiaro e persino consumare più token del JSON, perché non può sfruttare bene la modalità tabellare. -
Strutture non uniformi o molto eterogenee
Se ogni elemento dell’array ha campi diversi o schema variabile, il punto di forza di TOON (evitare ripetizioni uniformi) viene meno. In questi casi il guadagno in termini di token è minimo o nullo, e JSON resta più diretto. -
Ambiti con requisiti di formato rigidi
Se stai interagendo con sistemi che si aspettano JSON (API pubbliche, microservizi, database, librerie di terze parti), non ha senso introdurre TOON. Utilizzalo solo nel tratto di comunicazione con l’LLM; non come formato di persistenza o come interfaccia pubblica. -
Ottimizzazione prematura su dati piccoli
Se il volume dei dati è ridotto e il costo dei token non è un problema pratico, l’introduzione di TOON potrebbe essere uno sforzo superfluo. JSON su piccoli volumi funziona già bene, ed è supportato ovunque.
-
Come iniziare ad usare TOON
TOON è stato progettato per essere adottato facilmente sopra gli ecosistemi esistenti. Esistono già librerie e tool ufficiali (e non) che ne semplificano l’uso.
Libreria ufficiale (Node.js/TypeScript)
Gli sviluppatori di TOON hanno rilasciato un pacchetto NPM ufficiale per JavaScript/TypeScript. La libreria espone metodi come encode() e decode() per convertire bidirezionalmente tra JSON e TOON.
Esempio in un progetto Node:
import { encode, decode } from "@toon-format/toon";const data = {
utenti: [
{ id: 1, nome: "Alice", ruolo: "admin" },
{ id: 2, nome: "Bob", ruolo: "user" }
]
};const toonText = encode(data);
/*
toonText ora contiene:
utenti[2]{id,nome,ruolo}:
1,Alice,admin
2,Bob,user
*/
const jsonData = decode(toonText); // Torna all'oggetto JSON originale
In pratica, puoi mantenere JSON dentro la tua applicazione e trasformarlo in TOON solo nel punto in cui costruisci il prompt da inviare al modello.
CLI da riga di comando
Esiste anche un tool a riga di comando per convertire file JSON in TOON e viceversa. È utile per testare rapidamente l’efficacia di TOON sui tuoi dati reali e misurare il risparmio di token.
Il comando converte dati.json in TOON e mostra statistiche come il numero di caratteri e la stima di token risparmiati.
Altri linguaggi e tool
La community ha iniziato a sviluppare librerie e binding per vari linguaggi: Python, Rust, Go, PHP, Kotlin, Swift, e integrazioni con framework di AI come orchestratori di prompt, agent framework e strumenti di automazione.
Consigli pratici e best practice
-
Usalo solo dove serve
Mantieni JSON per API, storage, log e integrazioni tra sistemi. Convertilo in TOON solo nel tratto tra backend e modello AI. Questo approccio ibrido ti garantisce efficienza nei prompt e massima compatibilità altrove. -
Scegli il delimitatore ottimale
Di default TOON usa la virgola,per separare i valori nelle righe tabellari. Se i tuoi valori contengono molte virgole (ad esempio descrizioni testuali), o vuoi ridurre ulteriormente l’ambiguità, puoi usare tabulazioni (\t) o il carattere pipe (|) come separatore. In molti tokenizzatori, il tab ha un comportamento favorevole in termini di token consumati. -
Valida sempre l’output del modello
Se chiedi al modello di restituire dati in TOON, verifica che siano sintatticamente validi usando la funzione di decoding in modalità “strict”. In questo modo puoi intercettare errori come conteggi[N]non coerenti, righe mancanti o colonne in più.
Non forzarlo dove perde efficienza
Se per una particolare struttura i test mostrano che il guadagno in token è nullo o negativo, non usare TOON a tutti i costi. Puoi adottarlo solo per le sezioni del prompt adatte al formato tabellare (per esempio le grandi liste) e lasciare il resto in JSON o in testo naturale.
Esempio di utilizzo tipico:
cat dati.json | npx toon-cli --statsEcosistema e adozione
TOON è un progetto open-source recente ma in rapida crescita. La specifica iniziale è stata pubblicata a fine 2025 e il repository ufficiale su GitHub ha rapidamente raccolto decine di migliaia di stelle, segnale di un forte interesse da parte della community di sviluppatori AI.
La community ha iniziato fin da subito a creare:
-
implementazioni per diversi linguaggi,
-
tool da riga di comando,
-
integrazioni con framework di orchestrazione di prompt,
-
plugin per ambienti di sviluppo e strumenti no-code/low-code.
È importante ricordare, però, che TOON è ancora giovane: non esistono ancora standard formali né supporto nativo nei servizi cloud più diffusi (che continuano a parlare JSON o XML). L’uso di TOON è per ora spinto principalmente da casi d’uso pratici nel mondo LLM e dall’iniziativa della community.
Riferimenti
- Documentazione ufficiale TOON – “Token-Oriented Object Notation (TOON) – Specifica e README del progetto open-source”, repository GitHub toon-format/toon.
-
Abhilaksh Arora – “TOON: The Smarter, Lighter JSON for LLMs”, articolo tecnico pubblicato su DEV Community.
-
FreeCodeCamp News – “What is TOON? How Token-Oriented Object Notation Could Change How AI Sees Data”, guida introduttiva su TOON e sui suoi casi d’uso con i modelli linguistici.
-
JSONToTable Blog – “TOON Format Specification: Complete TOON JSON Syntax Guide”, guida completa alla sintassi e alle regole di conversione tra JSON e TOON.



