

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# ItemsPath ( JSONPath Solo mappa)
<a name="input-output-itemspath"></a>

**Gestione dello stato e trasformazione dei dati**  
Questa pagina fa riferimento a. JSONPath Step Functions ha recentemente aggiunto variabili e JSONata per gestire lo stato e trasformare i dati.  
Scopri come [passare dati con variabili](workflow-variables.md) e [trasformare dati con JSONata](transforming-data.md).

Negli stati JSONPath basati, usa il `ItemsPath` campo per selezionare un array o un oggetto all'interno di un input JSON fornito a uno `Map` stato. Per impostazione predefinita, lo `Map` stato è `ItemsPath` impostato su`$`, che seleziona l'intero input. 
+  Se l'input dello `Map` stato è un array JSON, esegue un'iterazione per ogni elemento dell'array, passando tale elemento all'iterazione come input 
+  Se l'input dello `Map` stato è un oggetto JSON, esegue un'iterazione per ogni coppia chiave-valore nell'oggetto, passando la coppia all'iterazione come input 

**Nota**  
È possibile utilizzare `ItemsPath` nello *stato Distributed Map* solo se si utilizza un input JSON passato da uno stato precedente nel flusso di lavoro.

Il valore di `ItemsPath` deve essere un [percorso di riferimento](amazon-states-language-paths.md#amazon-states-language-reference-paths) e tale percorso deve restituire un array o un oggetto JSON. Ad esempio, considera l'input a uno stato `Map` che include due matrici, come nell'esempio seguente.

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

In questo caso, è possibile specificare quale array utilizzare per le iterazioni di `Map` stato selezionandolo con. `ItemsPath` La seguente definizione di macchina a stati specifica l'`ThingsPiratesSay`array nell'input `ItemsPath` utilizzando.IT, quindi esegue un'iterazione dello stato di `SayWord` passaggio per ogni elemento dell'array. `ThingsPiratesSay`

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

Per gli oggetti JSON annidati, è possibile utilizzare `ItemsPath` per selezionare un oggetto specifico all'interno dell'input. Considerate il seguente input con dati di configurazione annidati:

```
{
  "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}
    }
  }
}
```

Per eseguire un'iterazione sull'oggetto dei server Web, è necessario impostare su`ItemsPath`: `$.servers.web`

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

Durante l'elaborazione dell'input, lo `Map` stato si applica `ItemsPath` dopo [`InputPath`](input-output-inputpath-params.md#input-output-inputpath). Funziona sull'ingresso effettivo allo stato dopo aver `InputPath` filtrato l'input.

Per ulteriori informazioni sugli stati `Map`, consulta quanto segue.
+  [Stato Map](state-map.md) 
+ [Modalità di elaborazione dello stato della mappa](state-map.md#concepts-map-process-modes)
+ [Ripeti le azioni con Inline Map](tutorial-map-inline.md)
+ [Elaborazione di input e `Map` output in stato di linea](state-map-inline.md#inline-map-state-output)