← Blog

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 }
  ]
}
  1. Coppie nome e valore. Ogni dato ha un nome tra virgolette, i due punti e il valore: "numero": "A-1042".
  2. 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).
  3. Le graffe { } raggruppano. Un oggetto può contenere altri oggetti: cliente ha dentro nome ed email.
  4. 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.

  1. Arriva l’ordine: 1 item con dentro la lista prodotti.
  2. Split Out sul campo prodotti: ora hai 2 item, uno per prodotto.
  3. Edit Fields (Set): aggiungi a ogni item il numero d’ordine, leggendolo dal nodo iniziale con $('Nuovo ordine').item.json.numero.
  4. 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:

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.