Expressions indéfinies

Pourquoi mon expression renvoie undefined alors que le champ existe

Décrivez le problème/l’erreur/la question

Quel est le message d’erreur (le cas échéant) ?

Veuillez partager votre flux de travail

(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le flux de travail.)

Partagez la sortie retournée par le dernier nœud

Informations sur votre configuration n8n

  • Version n8n :
  • Base de données (par défaut : SQLite) :
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) :
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) :
  • Système d’exploitation :

@Oscar_Abaleke neuf fois sur dix, c’est le chemin d’expression qui ne correspond pas à la forme JSON réelle, la notation pointée comme {{ $json.field }} n’accède qu’à un enfant imbriqué réel, donc si ta clé contient un espace ou un point dans le nom lui-même, cela retourne undefined et tu dois utiliser la notation entre crochets avec la clé exacte, {{ $json[‘your field’] }}. L’autre cas courant est que le champ se trouve réellement sur un nœud antérieur plutôt que sur l’entrée immédiate, donc $json pointe vers la mauvaise étape. Tu peux coller l’expression exacte que tu utilises et une capture d’écran du panneau d’entrée pour ce nœud afin que je voie la vraie clé ?

Salut @Oscar_Abaleke

La cause principale est que le champ a peut-être été supprimé ou modifié par un nœud Set, Edit Fields ou Code en amont.

Vérifiez la sortie de données du nœud précédent, si « Keep Only Set Fields » est activé et assurez-vous toujours que le chemin JSON exact est référencé

si l’expression est valide, le nom du nœud tout, utiliser

first().json à la place de item.json

Une chose de plus à vérifier : si le champ existe dans un nœud qui n’est pas directement connecté au nœud actuel dans la chaîne, la syntaxe par défaut $json.fieldName ou $item().json.fieldName ne l’atteindra pas. Vous auriez besoin de $('Node Name').item.json.fieldName pour récupérer les données d’un nœud en amont spécifique par son nom.

Aussi - si l’aperçu de l’expression dans l’éditeur affiche undefined mais que le workflow s’exécute correctement (ou affiche une valeur dans la sortie d’exécution), cela signifie généralement que l’éditeur utilise les données d’une ancienne exécution. Relancez manuellement le nœud en amont pour que l’éditeur dispose de données fraîches à évaluer.