Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Note: You may notice some temporary visual or styling issues in the Community. Our vendor is actively investigating.
cancel
Showing results for 
Search instead for 
Did you mean: 
DEV-Talend1
Contributor
Contributor

Problème de dépendances JSON

Bonjour Support Talend,

Je rencontre un problème avec l’utilisation des bibliothèques JSON dans mon projet.
Talend ne reconnaît pas les packages `com.fasterxml.jackson` et `org.json`, ce qui empêche la mise en place d’un parsing générique des fichiers JSON.

Contexte :
- Version de Talend : 8.0.1 R2025-02 
- Objectif : lecture et flattening dynamique de fichiers JSON provenant de différentes API 
- Problème : à l’exécution, j’ai l’erreur “The import com.fasterxml cannot be resolved” et “JsonNode cannot be resolved to a type”.

Questions :
1. Quelle est la méthode recommandée pour gérer du parsing JSON dynamique si l’ajout de librairies externes n’est pas supporté ?
2. Existe-t-il un composant Talend natif ou une best practice pour éviter la dépendance à des librairies tierces ?

Merci pour votre aide.

Labels (7)
1 Reply
Dave_Simo
Creator II
Creator II

Hello @DEV-Talend1 

Réponse de ChatGPT ci-dessous 

Tu touches à une limite fréquente dans Talend : même si techniquement on peut parfois ajouter des librairies Java tierces dans \lib\java du Studio, en pratique (surtout en 8.0.x avec exécution Cloud / Remote Engines) ça devient vite compliqué à maintenir.

Voici les réponses adaptées à ton contexte :

1. Parsing JSON dynamique sans dépendances externes

Talend fournit déjà des composants pour travailler avec JSON sans avoir besoin de jackson ou org.json.

tFileInputJSON ou tInputJSON : permettent de lire des fichiers JSON selon un XPath (équivalent XML) défini par schéma.

tExtractJSONFields : peut être branché après un composant qui fournit une chaîne JSON (ex. API via tRestClient) et extraire dynamiquement les champs.

tJSONDoc et tJSONExtract (nouveaux dans 8.x) : beaucoup plus flexibles, car ils permettent de manipuler un document JSON en mémoire et de naviguer dedans.

JSONPath (option dans certains composants) : permet d’extraire des morceaux de JSON de façon dynamique sans écrire de Java.

👉Si ton objectif est le flattening dynamique (schéma inconnu à l’avance), il faut combiner :

tRestClient ou tFileInputFullRow pour obtenir le JSON brut

tExtractJSONFields avec une colonne contenant le JSON entier

éventuellement tDenormalize / tNormalize pour aplatir les tableaux

2. Best practices Talend sans librairies tierces

Utiliser les composants JSON natifs : Talend a renforcé leur prise en charge (surtout après la 8.0). C’est la solution officiellement supportée (évite les problèmes de dépendances).

Stocker le JSON complet en String et le transformer via tExtractJSONFields → tu n’as pas besoin de coder avec JsonNode.

Si vraiment besoin d’un parsing dynamique générique :

utiliser un composant Talend tJavaFlex ou tMap qui manipule le JSON en tant que String, puis passer par les expressions JSONPath supportées par Talend.

sinon, externaliser le parsing via un microservice (Node.js ou Java Spring Boot avec Jackson) et consommer le résultat aplati dans Talend.

En résumé :

Ne pas essayer d’ajouter Jackson ou org.json → Talend ne le supporte pas bien en 8.x, surtout côté exécution Cloud.

Utiliser les composants natifs (tExtractJSONFields, tJSONDoc, JSONPath) pour parsing + flattening dynamique.

Si tu veux vraiment un parsing générique complexe → externaliser dans un service tiers plutôt que d’injecter des libs dans Talend.