

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

**Gerenciar estados e transformar dados**  
Esta página se refere JSONPath a. Recentemente, o Step Functions adicionou variáveis JSONata para gerenciar dados de estado e transformação.  
Saiba mais sobre como [transmitir dados com variáveis](workflow-variables.md) e [transformar dados com JSONata](transforming-data.md).

Em estados JSONPath baseados, use o `ItemsPath` campo para selecionar uma matriz ou objeto em uma entrada JSON fornecida a um `Map` estado. Por padrão, um estado `Map` define `ItemsPath` como `$`, o que seleciona toda a entrada. 
+  Se a entrada para o `Map` estado for uma matriz JSON, ela executará uma iteração para cada item na matriz, passando esse item para a iteração como entrada 
+  Se a entrada para o `Map` estado for um objeto JSON, ela executará uma iteração para cada par de valores-chave no objeto, passando o par para a iteração como entrada 

**nota**  
Você só poderá usar `ItemsPath` no *estado Mapa Distribuído* se usar uma entrada JSON transmitida de um estado anterior no fluxo de trabalho.

O valor de `ItemsPath` deve ser um [caminho de referência](amazon-states-language-paths.md#amazon-states-language-reference-paths), e esse caminho deve ser avaliado como uma matriz ou objeto JSON. Por exemplo, considere a entrada para um estado `Map` que inclua duas matrizes, como o exemplo a seguir.

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

Nesse caso, você pode especificar qual matriz usar para iterações do estado `Map` selecionando-a com `ItemsPath`. A definição de máquina de estado a seguir especifica a matriz `ThingsPiratesSay` na entrada usando `ItemsPath`. Em seguida, ela executa uma iteração do estado de passagem `SayWord` para cada item na matriz `ThingsPiratesSay`.

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

Para objetos JSON aninhados, você pode usar `ItemsPath` para selecionar um objeto específico na entrada. Considere a seguinte entrada com dados de configuração aninhados:

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

Para iterar sobre o objeto do servidor web, você definiria como`ItemsPath`: `$.servers.web`

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

Ao processar a entrada, o estado `Map` aplica `ItemsPath` depois do [`InputPath`](input-output-inputpath-params.md#input-output-inputpath). Ele é operado na entrada efetiva para o estado depois que `InputPath` filtra a entrada.

Para obter mais informações sobre estados `Map`, consulte os tópicos a seguir:
+  [Estado do mapa](state-map.md) 
+ [Modos de processamento do estado do mapa](state-map.md#concepts-map-process-modes)
+ [Repetir ações com o mapa inline](tutorial-map-inline.md)
+ [Processamento de entrada e saída do estado `Map` inline.](state-map-inline.md#inline-map-state-output)