Manipuler le JSON dans n8n : le guide pratique

Accueil · Ressources · Guides & actualités

Guides & actualités

Manipuler le JSON dans n8n : extraire, transformer, structurer

22 mai 2026 · 7 min de lecture

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

En bref

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 :

Accès aux données{{ $json.email }} // une valeur simple {{ $json.client.nom }} // une valeur imbriquée {{ $json.commandes[0].total }} // le 1er élément d’un tableau {{ $(‘Nom du nœud’).item.json.email }} // depuis un nœud précis

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.

Exemple : préparer un objet pour un CRMnom_complet = {{ $json.prenom }} {{ $json.nom }} email = {{ $json.email }} source = « Formulaire site » date_contact = {{ $now.toFormat(‘dd/MM/yyyy’) }}

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.

Conversions// Texte JSON → objet utilisable {{ JSON.parse($json.reponse_api) }} // Objet → chaîne de texte {{ JSON.stringify($json.donnees) }}

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 .email sur du texte JSON non parsé ne renvoie rien. Passez par JSON.parse d’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.