Scénario 1 : Extraire des données JSON d'un fichier en utilisant le JSONPath sans configurer de nœud de boucle - 6.3

Composants Talend Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario décrit un Job à deux composants qui extrait des données du fichier JSON Store.json en spécifiant le chemin JSON complet pour chaque nœud présentant un intérêt et affiche les données plates extraites dans la console.

Le fichier JSON contient des informations concernant un magasin et son contenu se présente comme suit :

{"store": {
    "name": "Sunshine Department Store",
    "address": "Wangfujing Street",
    "goods": {
        "book": [
            {
                "category": "Reference",
                "title": "Sayings of the Century",
                "author": "Nigel Rees",
                "price": 8.88
            },
            {
                "category": "Fiction",
                "title": "Sword of Honour",
                "author": "Evelyn Waugh",
                "price": 12.66
            }
        ],
        "bicycle": {
            "type": "GIANT OCR2600",
            "color": "White",
            "price": 276
        }
    }
}}

Dans l'exemple suivant, vous allez extraire de ce fichier le nom du magasin, son adresse et les informations sur les vélos.

Ajouter et relier les composants

  1. Créez un nouveau Job et ajoutez un composant tFileInputJSON et un composant tLogRow en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette.

  2. Reliez le composant tFileInputJSON au tLogRow à l'aide d'un lien Row > Main.

  3. Reliez les composants à l'aide d'un lien Row > Main.

Configurer les composants

  1. Double-cliquez sur le composant tFileInputJSON pour ouvrir sa vue Basic settings.

  2. Sélectionnez JsonPath without loop dans la liste déroulante Read By. Pour cette option, vous devez spécifier le chemin JSON complet pour chaque nœud présentant un intérêt dans les champs JSONPath query de la table Mapping.

  3. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur du schéma.

  4. Cliquez sur le bouton [+] pour ajouter cinq colonnes, store_name, store_address, bicycle_type et bicycle_color de type String et bicycle_price de type Double.

    Cliquez sur OK pour fermer l'éditeur du schéma. Dans la fenêtre qui s'affiche, cliquez sur Yes pour propager le schéma au composant suivant.

  5. Dans la boîte de dialogue [Propagate], cliquez sur Yes pour propager le schéma au composant suivant.

    Dans le champ Filename, spécifiez le chemin d'accès au fichier JSON contenant les données à extraire. Dans cet exemple, "E:/Store.json".

  6. Dans la table Mapping, les champs Column sont automatiquement renseignés par les colonnes du schéma que vous avez définies.

    Dans les champs JSONPath query, saisissez les requêtes JSONPath entre guillemets doubles pour spécifier les nœuds contenant les données souhaitées.

    • Pour les colonnes store_name et store_address, saisissez les expressions de requêtes JSONPath "$.store.name" et "$.store.address" relatives aux nœuds name et address, respectivement.

    • Pour les colonnes bicycle_type, bicycle_color et bicycle_price, saisissez les expressions de requêtes JSONPath "$.store.goods.bicycle.type", "$.store.goods.bicycle.color" et "$.store.goods.bicycle.price" relatives aux nœuds enfants, respectivement type, color et price du nœud bicycle.

  7. Double-cliquez sur le composant tLogRow pour afficher sa vue Basic settings.

  8. Dans la zone Mode, sélectionnez Table (print values in cells of a table) pour afficher un résultat plus lisible.

Exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour sauvegarder le Job.

  2. Appuyez sur F6 pour exécuter le Job.

    Comme affiché ci-dessus, le nom du magasin, son adresse et les informations sur les vélos sont extraites des données source JSON et affichées sous forme de table plate dans la console.