JSON per principianti: leggere e trasformare i dati in n8n
Guida· di Bernardo Mannelli
Prima o poi, in n8n, ti trovi davanti a qualcosa del genere: parentesi graffe, virgolette, due punti. È JSON, il formato con cui quasi tutte le app si scambiano i dati, e con cui n8n passa i dati da un nodo all’altro.
Non serve essere programmatori per capirlo. Bastano quattro regole e qualche esempio. Questa guida spiega come leggerlo e come trasformarlo dentro n8n. Riferimento: n8n 2.43, ottobre 2026.
Le quattro regole del JSON
Ecco un ordine di un negozio online, in JSON:
{
"numero": "A-1042",
"totale": 89.9,
"pagato": true,
"note": null,
"cliente": {
"nome": "Giulia Bianchi",
"email": "giulia@esempio.it"
},
"prodotti": [
{ "nome": "Lampada da tavolo", "quantita": 1, "prezzo": 59.9 },
{ "nome": "Lampadina LED", "quantita": 2, "prezzo": 15 }
]
}
- Coppie nome e valore. Ogni dato ha un nome tra virgolette, i due punti e il valore:
"numero": "A-1042". - Quattro tipi di valore semplici. Testo tra virgolette (
"A-1042"), numeri senza virgolette e con il punto per i decimali (89.9), vero o falso (true,false) e il valore vuoto (null). - Le graffe
{ }raggruppano. Un oggetto può contenere altri oggetti:clienteha dentronomeedemail. - Le quadre
[ ]fanno una lista.prodottiè una lista di due oggetti, uno per prodotto.
Tutto il resto è la combinazione di queste quattro regole.
Come n8n passa i dati: gli item
In n8n i dati viaggiano tra i nodi come una lista di item. Un item è un “pacchetto” di dati: un ordine, un’email, una riga di un foglio, un contatto.
La regola più importante da ricordare: un nodo lavora su ogni item, uno per uno. Se un nodo Gmail riceve 10 item, manda 10 email. Se un nodo Google Sheets riceve 3 item, aggiunge 3 righe.
Per questo, quando un workflow fa “troppe” o “troppo poche” cose, la prima domanda è sempre: quanti item arrivano a questo nodo? Il numero è scritto sopra il pannello di uscita di ogni nodo.
Nel pannello puoi vedere i dati in tre modi: come tabella, come JSON o come schema (l’elenco dei campi). Per capire la struttura, lo schema è il più comodo; per vedere i valori esatti, il JSON.
Leggere i dati con le espressioni
Per usare un dato in un nodo successivo si usano le espressioni, tra doppie graffe. Il modo più semplice per crearle è trascinare un campo dal pannello di ingresso dentro un campo del nodo: n8n scrive l’espressione per te.
Con l’ordine di prima, ecco come leggere i vari pezzi:
| Cosa vuoi | Espressione | Risultato |
|---|---|---|
| Il numero d’ordine | {{ $json.numero }} |
A-1042 |
| L’email del cliente | {{ $json.cliente.email }} |
giulia@esempio.it |
| Il primo prodotto | {{ $json.prodotti[0].nome }} |
Lampada da tavolo |
| Quanti prodotti | {{ $json.prodotti.length }} |
2 |
| Il nome in maiuscolo | {{ $json.cliente.nome.toUpperCase() }} |
GIULIA BIANCHI |
Qualche regola:
$jsonè l’item che arriva al nodo;- il punto entra dentro un oggetto:
cliente.email; - le quadre con un numero prendono un elemento di una lista, contando da zero:
[0]è il primo,[1]il secondo; - per leggere un dato da un nodo precedente, non quello subito prima, si usa il suo nome:
{{ $('Nuovo ordine').item.json.numero }}.
Le espressioni accettano anche piccoli calcoli e funzioni. Due utili: {{ $json.imponibile * 1.22 }} calcola il prezzo con l’IVA al 22% partendo da un campo imponibile; {{ $now.toFormat('dd/MM/yyyy') }} scrive la data di oggi nel formato italiano.
Trasformare i dati: i nodi da conoscere
Spesso i dati che ricevi non hanno la forma che ti serve. Prima di scrivere codice, prova questi nodi:
| Nodo | Cosa fa | Esempio |
|---|---|---|
| Edit Fields (Set) | crea, rinomina o elimina campi | tenere solo nome, email e totale prima di salvarli in un foglio |
| Split Out | trasforma una lista in item separati | un item per ogni prodotto dell’ordine |
| Aggregate | fa il contrario: unisce più item in una lista | un’unica email con tutti gli ordini del giorno |
| Filter | tiene solo gli item che rispettano una condizione | solo gli ordini sopra 100 € |
| Sort | ordina gli item | ordini dal più grande al più piccolo |
| Remove Duplicates | toglie gli item uguali | contatti presenti due volte |
| Summarize | fa totali e conteggi, come una tabella pivot | totale venduto per prodotto |
Un esempio tipico: vuoi una riga del foglio Google per ogni prodotto venduto.
- Arriva l’ordine: 1 item con dentro la lista
prodotti. - Split Out sul campo
prodotti: ora hai 2 item, uno per prodotto. - Edit Fields (Set): aggiungi a ogni item il numero d’ordine, leggendolo dal nodo iniziale con
$('Nuovo ordine').item.json.numero. - Google Sheets: aggiunge 2 righe.
Quando nessun nodo basta, c’è il nodo Code, dove puoi scrivere JavaScript o Python. Molti modelli AI sanno scrivere quel codice per te, se gli descrivi i dati di ingresso e quelli che vuoi ottenere.
Gli errori più comuni
| Cosa vedi | Causa probabile | Cosa fare |
|---|---|---|
| Il campo è vuoto o “undefined” | Il nome è scritto diverso: maiuscole, spazi, accenti | Trascina il campo invece di scriverlo a mano |
Compare [object Object] |
Stai usando un intero oggetto dove serve un testo | Entra nel campo giusto con il punto: cliente.email, non cliente |
| Il nodo fa la stessa cosa 50 volte | Arrivano 50 item invece di 1 | Usa Aggregate prima, o controlla da dove arrivano gli item |
| Un calcolo dà un risultato strano | Il numero è arrivato come testo, per esempio "89.9" |
Convertilo con Number($json.totale) |
| Un’API rifiuta il JSON che mandi | Una virgola in più o in meno, virgolette sbagliate | Controlla il JSON con un validatore online prima di incollarlo |
Dove trovi il JSON nei template
Ogni template n8n è esso stesso un file JSON, e quasi ogni template trasforma dati JSON. Per esempio:
- Registra le spese dagli scontrini con Telegram, Gemini e Sheets: l’AI estrae i dati dello scontrino, che finiscono come campi in un foglio Google.
- Raccogli lead dal sito in Google Sheets e rispondi con Gmail: un webhook riceve i dati del modulo in JSON e li controlla prima di salvarli.
- Sincronizza l’assistenza tra Telegram e Zoho Desk: i messaggi passano da un servizio all’altro cambiando forma.
Il JSON è anche quello che ricevi quando chiami un’API con il nodo HTTP Request. E se stai costruendo un agente AI, è il formato con cui gli strumenti gli restituiscono i dati.