Accéder au contenu principal Passer au contenu complémentaire

Utiliser des paires clé/valeur

Availability-noteBêta
Mettez à jour une structure pour pouvoir mapper des paires clé/valeur.

Avant de commencer

  • Vous avez créé des structures d'entrée et de sortie. Vous pouvez utiliser les échantillons JSON ci-dessous pour créer vos structures.

Pourquoi et quand exécuter cette tâche

Dans cet exemple, vous avez un fichier JSON comprenant un objet items contenant des informations relatives à des vélos et scooters. Chaque élément est un objet ayant le nom de l'élément comme clé. La valeur est un objet contenant la description et le prix de l'élément. L'objectif est de créer une sortie avec un tableau d'éléments.

Les données d'entrée ressemblent à ceci :
{
    "items": {
        "MBIKE": {
            "description": "27.5 inch electric mountain bike",
            "price": "899.99"
        },
        "EBIKE": {
            "description": "Electric hybrid bike",
            "price": "999.99"
        },
        "WBIKE": {
            "description": "Women's road bike",
            "price": "299.99"
        },
        "ESCOOT": {
            "description": "Camou electric scooter",
            "price": "749.0"
        },
        "EVSCOOT": {
            "description": "Folding electric velocity+ scooter",
            "price": "599.99"
        },
        "KSCOOT": {
            "description": "24 volt kid scooter",
            "price": "299.99"
        }
    }
}
La structure de sortie ressemble à ceci :
{
    "items": [
        {
            "make": "",
            "description": "",
            "price": ""
        }
    ]
}

Procédure

  1. Ouvrez la structure d'entrée créée et développez l'élément items.
    L'élément items contient un enfant pour chaque type d'élément présent dans le fichier JSON. Cela signifie que la structure n'est pas utilisable si plus d'éléments sont ajoutés. Vous devez donc mettre à jour la structure pour la rendre générique.
  2. Cliquez sur Read Only (Lecture seule) et sélectionnez Editable (Modifiable) dans la liste déroulante.
  3. Cliquez sur items et sélectionnez Map dans la liste déroulante Group Type (Type de groupe).
    Si vous avez installé la version mensuelle R2023-11 du Studio Talend ou une plus récente, une boîte de dialogue s'ouvre et indique que la modification du type d'élément à Map remplace les enfants de l'élément. Si vous cliquez sur Yes (Oui), une boucle entry contenant un élément key et un élément value sera automatiquement créée.

    Si vous utilisez une version mensuelle plus ancienne du Studio Talend, vous devez manuellement supprimer les éléments dans items et créer la boucle entry avec les éléments key et value.

  4. Cliquez-droit sur value et créez deux éléments nommés description et price, puis sauvegardez la structure.
    La structure finale doit ressembler à ceci :

    Vous pouvez fermer et rouvrir la structure pour vérifier le contenu surligné dans l'onglet Document.

  5. Créez une DSQL Map (Map DSQL) et ajoutez les structures d'entrée et de sortie.
  6. Mappez les éléments suivants à l'aide du glisser-déposer :
    • key à make
    • description à description
    • price à price
  7. Cliquez sur l'élément items et ajoutez la ligne suivante sous l'expression existante pour filtrer les données de sortie :
    WHERE value.price <= items['ESCOOT'].price

    Cette expression indique que la map doit retourner uniquement les éléments ayant un prix inférieur ou égal au prix de l'élément d'entrée ESCOOT. Vous pouvez voir que la valeur est référencée à l'aide d'une clé spécifique. Pour plus d'informations, consultez le Guide de référence de Talend Data Shaping Language.

Résultats

Votre map est configurée. Vous pouvez utiliser la fonction Test Run (Exécution de test) pour consulter les résultats. Dans cet exemple, le résultat suivant est retourné :
{
   "items":[
      {
         "make":"ESCOOT",
         "description":"Camou electric scooter",
         "price":"749.0"
      },
      {
         "make":"WBIKE",
         "description":"Women's road bike",
         "price":"299.99"
      },
      {
         "make":"KSCOOT",
         "description":"24 volt kid scooter",
         "price":"299.99"
      },
      {
         "make":"EVSCOOT",
         "description":"Folding electric velocity+ scooter",
         "price":"599.99"
      }
   ]
}
Vous pouvez également faire le contraire et utiliser une map pour créer une sortie avec les paires clé/valeur, par exemple :

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.