Accueil · Ressources · Guides & actualités
Guides & actualitésManipuler le JSON dans n8n : extraire, transformer, structurer
Dans n8n, toutes les données circulent en JSON. Savoir y accéder, le transformer et le restructurer est la compétence qui débloque tout le reste : c’est ce qui sépare un workflow qui marche d’un workflow qui plante au troisième nœud. Ce guide montre comment manipuler le JSON dans n8n, sans coder, avec les expressions et le nœud Edit Fields.
Le JSON, langage commun de n8n
Chaque nœud de n8n reçoit et renvoie des données au format JSON, accessibles via la variable $json. Pour lire une valeur, on utilise la notation point ($json.client.email). Pour transformer la structure, le nœud Edit Fields (Set) suffit dans la plupart des cas, sans écrire de code.
Un objet JSON est simplement une liste de paires clé / valeur, éventuellement imbriquées. Quand un nœud n8n produit une donnée, le nœud suivant la reçoit en JSON. Comprendre cette circulation, c’est comprendre comment n8n fait passer l’information d’une étape à l’autre.
Accéder à une donnée avec $json
Dans une expression, $json représente les données du nœud précédent. On descend dans la structure avec des points :
Cette dernière forme, avec le nom du nœud, est très utile quand vous devez récupérer une donnée d’une étape antérieure, pas seulement du nœud juste avant.
Le nœud Edit Fields (Set) : transformer sans coder
C’est l’outil central pour façonner vos données. Le nœud Edit Fields (Set) permet de créer, renommer ou supprimer des champs, et d’assembler un nouvel objet propre à partir de plusieurs sources. Vous y combinez des valeurs fixes et des expressions $json.
En sortie, vous obtenez un JSON net, prêt à être envoyé au nœud suivant (CRM, tableur, e-mail), sans champs parasites.
Convertir : JSON.parse et JSON.stringify
Deux cas reviennent souvent. Quand une API renvoie du JSON sous forme de texte, il faut le transformer en objet exploitable avec JSON.parse. À l’inverse, pour envoyer un objet dans un champ qui attend du texte, on utilise JSON.stringify.
Le nœud Code permet d’aller plus loin si besoin, mais 90 % des cas se règlent avec ces deux fonctions dans une expression.
Restructurer un objet ou un tableau
Quand une étape renvoie une structure imbriquée et que la suivante attend un format plat (ou l’inverse), vous réorganisez avec Edit Fields, ou avec les nœuds Item Lists pour découper ou regrouper des tableaux. Exemple courant : transformer une liste de commandes en lignes individuelles pour les insérer une par une dans un tableur.
L’idée est toujours la même : partir de ce que vous avez, viser la structure attendue par le nœud suivant, et faire la transformation au milieu. Mieux vaut un objet simple et propre qu’une structure riche que les nœuds suivants n’arrivent pas à lire.
Les erreurs JSON les plus courantes dans n8n
- Se tromper de chemin :
$json.client.emailéchoue si l’objet n’a pas de cléclient. Vérifiez la structure réelle dans le panneau d’entrée du nœud. - Confondre tableau et objet : un tableau s’adresse par index (
[0]), un objet par clé. L’erreur « undefined » vient souvent de là. - Oublier de parser : appliquer
.emailsur du texte JSON non parsé ne renvoie rien. Passez parJSON.parsed’abord. - Trop de niveaux d’imbrication : aplatissez tôt avec Edit Fields plutôt que de traîner une structure complexe dans tout le workflow.
Maîtriser ces réflexes JSON, c’est gagner en autonomie sur n8n et arrêter de bloquer au moindre changement de structure. C’est l’un des socles qu’on installe dans notre formation n8n.
Questions fréquentes
Comment accéder à une donnée JSON dans n8n ?
Avec la variable $json et la notation point dans une expression, par exemple {{ $json.client.email }}. Pour une donnée d’un nœud antérieur, utilisez {{ $('Nom du nœud').item.json.champ }}.
Faut-il coder pour manipuler le JSON dans n8n ?
Non. Le nœud Edit Fields (Set) couvre la plupart des transformations sans code. Les fonctions JSON.parse et JSON.stringify s’écrivent dans une simple expression.
Quelle différence entre JSON.parse et JSON.stringify ?
JSON.parse transforme un texte JSON en objet exploitable ; JSON.stringify fait l’inverse, il transforme un objet en chaîne de texte.
Pourquoi j’obtiens « undefined » sur un champ ?
Le chemin ne correspond pas à la structure réelle, ou vous adressez un tableau comme un objet. Vérifiez les données d’entrée du nœud et utilisez l’index [0] pour un tableau.
Comment transformer une liste en lignes individuelles ?
Utilisez les nœuds Item Lists pour découper un tableau en éléments séparés, par exemple pour insérer chaque commande sur une ligne d’un tableur.
Devenez autonome sur n8n
Données, expressions, agents IA : apprenez à construire des automatisations fiables de bout en bout, sur vos propres cas, avec un accompagnement sur mesure.
