

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# ItemsPath (Carte, JSONPath uniquement)
<a name="input-output-itemspath"></a>

**Gestion de l'état et transformation des données**  
Cette page fait référence à JSONPath. Step Functions a récemment ajouté des variables et JSONata permet de gérer l'état et de transformer les données.  
Découvrez comment [transmettre des données avec des variables](workflow-variables.md) et [transformer des données avec JSONata](transforming-data.md).

Dans les états JSONPath basés, utilisez le `ItemsPath` champ pour sélectionner un tableau ou un objet dans une entrée JSON fournie à un `Map` état. Par défaut, l'`Map`état est défini `ItemsPath` sur`$`, ce qui sélectionne l'intégralité de l'entrée. 
+  Si l'entrée de l'`Map`état est un tableau JSON, il exécute une itération pour chaque élément du tableau, en transmettant cet élément à l'itération en tant qu'entrée 
+  Si l'entrée de l'`Map`état est un objet JSON, il exécute une itération pour chaque paire clé-valeur de l'objet, en transmettant la paire à l'itération en entrée 

**Note**  
Vous ne pouvez l'utiliser `ItemsPath` dans l'*état de carte distribuée* que si vous utilisez une entrée JSON transmise depuis un état précédent dans le flux de travail.

La valeur de `ItemsPath` doit être un [chemin de référence](amazon-states-language-paths.md#amazon-states-language-reference-paths), et ce chemin doit être évalué comme un tableau ou un objet JSON. Par exemple, imaginons l’entrée d’un état `Map` qui inclut deux tableaux, comme dans l'exemple suivant.

```
{
  "ThingsPiratesSay": [
    {
      "say": "Avast!"
    },
    {
      "say": "Yar!"
    },
    {
      "say": "Walk the Plank!"
    }
  ],
  "ThingsGiantsSay": [
    {
      "say": "Fee!"
    },
    {
      "say": "Fi!"
    },
    {
      "say": "Fo!"
    },
    {
      "say": "Fum!"
    }
  ]
}
```

Dans ce cas, vous pouvez spécifier le tableau à utiliser pour les itérations `Map` d'états en le sélectionnant avec`ItemsPath`. La définition de machine à états suivante spécifie le `ThingsPiratesSay` tableau dans l'entrée à l'`ItemsPath`aide de .Il exécute ensuite une itération de l'état de `SayWord` passe pour chaque élément du `ThingsPiratesSay` tableau.

```
{
  "StartAt": "PiratesSay",
  "States": {
    "PiratesSay": {
      "Type": "Map",
      "ItemsPath": "$.ThingsPiratesSay",
      "ItemProcessor": {
         "StartAt": "SayWord",
         "States": {
           "SayWord": {
             "Type": "Pass",
             "End": true
           }
         }
      },
      "End": true
    }
  }
}
```

Pour les objets JSON imbriqués, vous pouvez `ItemsPath` les utiliser pour sélectionner un objet spécifique dans l'entrée. Tenez compte de l'entrée suivante avec des données de configuration imbriquées :

```
{
  "environment": "production",
  "servers": {
    "web": {
      "server1": {"port": 80, "status": "active"},
      "server2": {"port": 8080, "status": "inactive"}
    },
    "database": {
      "primary": {"host": "db1.example.com", "port": 5432},
      "replica": {"host": "db2.example.com", "port": 5432}
    }
  }
}
```

Pour effectuer une itération sur l'objet du serveur Web, vous devez définir ce qui suit `ItemsPath` : `$.servers.web`

```
{
  "StartAt": "ProcessWebServers",
  "States": {
    "ProcessWebServers": {
      "Type": "Map",
      "ItemsPath": "$.servers.web",
      "ItemProcessor": {
         "StartAt": "CheckServer",
         "States": {
           "CheckServer": {
             "Type": "Pass",
             "End": true
           }
         }
      },
      "End": true
    }
  }
}
```

Lors du traitement de l'entrée, l'`Map`état s'applique `ItemsPath` ensuite [`InputPath`](input-output-inputpath-params.md#input-output-inputpath). Il agit sur l'entrée effective de l'état après avoir `InputPath` filtré l'entrée.

Pour plus d'informations sur les états `Map`, consultez les sections suivantes.
+  [État de mappage](state-map.md) 
+ [Modes de traitement de l'état des cartes](state-map.md#concepts-map-process-modes)
+ [Répéter les actions avec Inline Map](tutorial-map-inline.md)
+ [Traitement d'entrée et de sortie d'`Map`état en ligne](state-map-inline.md#inline-map-state-output)