JSON Path Extractor
Le node JSON Path Extractor extrait des valeurs précises depuis un payload JSON à l'aide d'expressions JSONPath, avec un mode mono-sortie ou multi-sorties.
À quoi sert le node JSON Path Extractor ?
Le node JSON Path Extractor prend une chaîne JSON en entrée et renvoie une ou plusieurs valeurs sélectionnées via des expressions JSONPath. C’est le pont entre les nodes qui produisent du JSON structuré (LLM, API Connector, SERP, scrapers) et les nodes en aval qui attendent un champ précis, une portion de tableau ou un sous-ensemble filtré.
Le node retire automatiquement les délimiteurs Markdown ```json / ``` du contenu reçu : vous pouvez donc brancher la sortie d’un LLM directement, sans nettoyage préalable. Il accepte aussi des placeholders {{variableName}} à l’intérieur des expressions, résolus avec les inputs connectés.
Cas d’usage typiques :
- Récupérer un seul champ (ex.
$.title) dans un objet JSON généré par un LLM. - Aplatir un tableau d’objets sur l’une de ses clés (ex.
$.results[*].url). - Produire plusieurs sorties nommées dans un seul node (mode multi-sorties) pour éviter d’enchaîner des extracteurs.
Configuration rapide
Suivez ces étapes pour ajouter et configurer le node JSON Path Extractor dans votre workflow :
Ajouter le node au canevas
Ouvrez la bibliothèque de nodes (Node Library), naviguez dans la catégorie Tools > Data transformation, puis glissez-déposez le node JSON Path Extractor sur votre espace de travail.
Connecter l’entrée JSON
Reliez la sortie d’un node amont qui émet du JSON (LLM, API Connector, Web Scraper, outil SERP, etc.) au port d’entrée JSON à gauche du node.
Choisir le mode d’extraction
Ouvrez les paramètres du node. Laissez Multi-Output Mode désactivé pour une extraction unique, ou activez-le pour définir plusieurs expressions nommées, chacune produisant son propre port de sortie.
Écrire la ou les expressions JSONPath
En mode mono-sortie, renseignez JSON Path Expression (ex. $.results[*].title). En mode multi-sorties, cliquez sur + Add pour chaque expression et fournissez un Name unique (utilisé comme nom du port de sortie) et l’Expression.
Connecter la ou les sorties
Reliez chaque port de sortie au node suivant. En mode multi-sorties, chaque expression nommée expose un port dédié.
Paramètres de configuration
Le node combine un port d’entrée obligatoire avec des paramètres qui dépendent du mode d’extraction choisi.
Champs requis
Name string required default: JSON Path Extractor Nom du node — Utilisé pour identifier le node sur le canevas et dans les logs d’exécution (ex. “Extraire les titres produits”).
Description string required default: Extracting data with a JSON Path expression Description du node — Courte phrase résumant ce que cette étape d’extraction est censée produire.
JSON string required Entrée JSON — Port connecté. Accepte une chaîne contenant du JSON valide (ou du JSON5). Les délimiteurs Markdown ```json et ``` finaux sont retirés automatiquement avant le parsing.
JSON Path Expression string required Expression JSONPath — Obligatoire quand Multi-Output Mode est désactivé. Doit commencer par $ (ex. $.users[0].email). Supporte les placeholders {{variableName}} résolus à partir des inputs connectés.
Champs optionnels
Multi-Output Mode boolean default: false Bascule multi-sorties — Si activé, le node expose un port de sortie par expression déclarée à la place du port unique Extracted content. Pratique pour récupérer plusieurs champs du même JSON sans dupliquer le node.
JSON Path Expressions array default: [] Liste d’expressions nommées — Obligatoire quand Multi-Output Mode est activé. Chaque entrée comporte un name (unique, devient le nom du port de sortie) et une expression (JSONPath, doit commencer par $).
Lorsque le node amont est une source connue (Serper Dev, Web Scraper, YourText.Guru, Semrush, Majestic, Search Console, YouTube Search, Google Sheets Reader, etc.), le panneau de paramètres suggère des expressions JSONPath prêtes à l’emploi pour ce payload. Servez-vous-en comme point de départ pour éviter les fautes de frappe.
Que renvoie le node ?
En mode mono-sortie, le node expose un seul port Extracted content portant le résultat de la requête JSONPath. En mode multi-sorties, un port est généré par expression, nommé d’après le champ name de l’entrée.
Extracted content string Résultat de la requête JSONPath en mode mono-sortie. Les scalaires sont renvoyés sous leur représentation chaîne ; les tableaux et objets sont sérialisés en JSON.
<expression name> string En mode multi-sorties, une sortie de cette forme est produite par entrée de JSON Path Expressions. Le nom du port correspond au champ name ; la valeur est le résultat de l’expression associée.
Exemples d’utilisation
Cas 1 : Extraire un champ unique depuis une sortie LLM
Vous demandez à un LLM de renvoyer un résumé JSON et seul le titre de l’article vous intéresse pour la suite.
Donnée d’entrée (depuis un LLM, avec délimiteurs Markdown) :
```json
{
"article_title": "Comment optimiser son SEO en 2024",
"keyword": "stratégie SEO",
"word_count": 1250
}
**Configuration :**
- **Multi-Output Mode** : désactivé
- **JSON Path Expression** : `$.article_title`
**Sortie (`Extracted content`) :**
Comment optimiser son SEO en 2024
### Cas 2 : Extraction multi-sorties depuis un payload SERP
Vous connectez un node Serper Dev et souhaitez alimenter trois nodes en aval avec trois portions distinctes de la réponse via un seul extracteur.
**Configuration :**
- **Multi-Output Mode** : activé
- **JSON Path Expressions** :
- `name` = `urls`, `expression` = `$.organic[*].link`
- `name` = `titles`, `expression` = `$.organic[*].title`
- `name` = `paa`, `expression` = `$.peopleAlsoAsk[*].question`
**Résultat :** le node expose trois ports de sortie (`urls`, `titles`, `paa`), chacun portant le tableau extrait correspondant, prêts à être branchés sur des branches en aval distinctes.
## Problèmes courants
<Accordion title="Erreur : JSON invalide / JSONDecodeError sur l'entrée">
**Cause :** le node amont a envoyé une chaîne qui n'est ni du JSON valide, ni du JSON5 valide, même après suppression des délimiteurs ` ```json `. Fréquent avec les LLM qui mélangent texte et JSON.
**Solution :** insérez un node **Find and Replace** ou **HTML Cleaner** avant l'extracteur pour retirer les caractères gênants, ou resserrez le prompt LLM pour qu'il ne renvoie que du JSON. Le JSON5 (apostrophes, virgules finales) est toléré en repli.
</Accordion>
<Accordion title="Erreur : Input '<name>' is required for expression but not provided">
**Cause :** votre expression contient un placeholder `{{variableName}}`, mais aucun input nommé `variableName` n'est connecté au node.
**Solution :** branchez la variable manquante sur le node, ou renommez le placeholder pour qu'il corresponde à un input connecté.
</Accordion>
<Accordion title="L'expression ne renvoie rien ou un tableau vide">
**Cause :** le chemin JSONPath ne correspond pas à la structure réelle du payload (faute sur une clé, wildcard `[*]` manquant, mauvais index).
**Solution :** exécutez le node amont une fois et inspectez sa sortie brute, puis ajustez le chemin. Pour les sources connues, appuyez-vous sur les suggestions affichées par le panneau de paramètres.
</Accordion>
<Accordion title="Le mode multi-sorties affiche une erreur de validation à la sauvegarde">
**Cause :** au moins une expression a un `Name` vide, deux expressions partagent le même nom, ou aucune expression n'a été ajoutée.
**Solution :** chaque expression doit avoir un nom unique non vide et une expression non vide commençant par `$`.
</Accordion>
## Bonnes pratiques et pièges à éviter
<Callout type="tip">
Préférez le **mode multi-sorties** plutôt que d'enchaîner plusieurs JSON Path Extractors sur le même payload : un seul node parse le JSON une fois et les branches en aval restent lisibles.
</Callout>
<Callout type="warning">
**Validez les chemins sur des données réelles.** Un chemin comme `$.results[0].title` renvoie silencieusement rien si le payload amont utilise `data` au lieu de `results` ou enveloppe le tableau un niveau plus profond. Vérifiez toujours une vraie sortie d'exécution avant de vous y fier en production.
</Callout>
## Comment s'intègre-t-il dans un workflow ?
Le JSON Path Extractor est l'« adaptateur de forme » canonique entre un node qui émet du JSON et un consommateur en aval qui attend un scalaire ou une liste plate.
```mermaid
graph LR
LLM[Node LLM génère JSON] --> FR[Find and Replace<br/>nettoie le Markdown]
FR --> JPE[JSON Path Extractor]
JPE --> Loop[Loop sur les items]
Loop --> Next[Node final]
Nodes complémentaires
Générez du JSON structuré, puis extrayez les champs précis avec JSON Path Extractor.
Retirez les caractères parasites ou les délimiteurs Markdown avant le parsing si la sortie LLM est bruitée.
Appelez n’importe quelle API HTTP et envoyez sa réponse JSON directement dans l’extracteur.
Itérez sur un tableau extrait par JSON Path Extractor (ex. $.results[*]).