

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

**Administración del estado y transformación de los datos**  
Esta página hace referencia a JSONPath. Step Functions agregó recientemente variables y JSONata para administrar el estado y transformar los datos.  
Obtenga información sobre cómo [pasar datos con variables](workflow-variables.md) y cómo [transformar datos con JSONata](transforming-data.md).

En los estados JSONPath basados, usa el `ItemsPath` campo para seleccionar una matriz u objeto dentro de una entrada JSON proporcionada a un `Map` estado. De forma predeterminada, un estado `Map` establece `ItemsPath` en `$`, lo que selecciona toda la entrada. 
+  Si la entrada al `Map` estado es una matriz JSON, ejecuta una iteración para cada elemento de la matriz y pasa ese elemento a la iteración como entrada 
+  Si la entrada al `Map` estado es un objeto JSON, ejecuta una iteración para cada par clave-valor del objeto y pasa el par a la iteración como entrada 

**nota**  
Puede usar `ItemsPath` en el *estado Map Distributed* solo si usa una entrada JSON pasada desde un estado anterior del flujo de trabajo.

El valor de `ItemsPath` debe ser una ruta de [referencia y esa ruta](amazon-states-language-paths.md#amazon-states-language-reference-paths) debe dar como resultado una matriz u objeto JSON. Por ejemplo, supongamos que la entrada a un estado `Map` incluye dos matrices, como en el siguiente ejemplo.

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

En este caso, puede especificar qué matriz se ha de utilizar para las iteraciones del estado `Map` seleccionándola mediante `ItemsPath`. La siguiente definición de máquina de estado especifica la matriz `ThingsPiratesSay` en la entrada mediante `ItemsPath`. A continuación, ejecuta una iteración del estado de paso `SayWord` para cada elemento de la matriz `ThingsPiratesSay`.

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

En el caso de los objetos JSON anidados, puede `ItemsPath` utilizarlos para seleccionar un objeto específico dentro de la entrada. Considera la siguiente entrada con datos de configuración anidados:

```
{
  "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 recorrer en iteración el objeto del servidor web, debe `ItemsPath` configurarlo de la siguiente manera: `$.servers.web`

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

Al procesar la entrada, el `Map` estado aplica `ItemsPath` después de [`InputPath`](input-output-inputpath-params.md#input-output-inputpath). Opera en la entrada efectiva al estado, después de que `InputPath` filtre la entrada.

Para obtener más información acerca de los estados `Map`, consulte los temas siguientes:
+  [Estado Map](state-map.md) 
+ [Modos de procesamiento del estado Map](state-map.md#concepts-map-process-modes)
+ [Repetir acciones con Inline Map](tutorial-map-inline.md)
+ [Procesamiento de entrada y salida del estado `Map` en línea](state-map-inline.md#inline-map-state-output)