

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

**Status verwalten und Daten transformieren**  
Diese Seite bezieht sich auf JSONPath. Step Functions hat kürzlich Variablen hinzugefügt und JSONata dient der Verwaltung von Zustands- und Transformationsdaten.  
Erfahren Sie mehr über [das Übergeben von Daten mit Variablen](workflow-variables.md) und das [Transformieren von Daten mit JSONata](transforming-data.md).

Verwenden Sie in JSONPath basierten Zuständen das `ItemsPath` Feld, um ein Array oder Objekt innerhalb einer JSON-Eingabe auszuwählen, die für einen `Map` Status bereitgestellt wird. Standardmäßig ist der `Map` Status `ItemsPath` auf festgelegt`$`, wodurch die gesamte Eingabe ausgewählt wird. 
+  Wenn es sich bei der Eingabe für den `Map` Status um ein JSON-Array handelt, wird für jedes Element im Array eine Iteration ausgeführt und dieses Element als Eingabe an die Iteration übergeben 
+  Wenn es sich bei der Eingabe für den `Map` Status um ein JSON-Objekt handelt, führt es eine Iteration für jedes Schlüssel-Wert-Paar im Objekt durch und übergibt das Paar als Eingabe an die Iteration 

**Anmerkung**  
Sie können `ItemsPath` im *Status Distributed Map* nur verwenden, wenn Sie eine JSON-Eingabe verwenden, die aus einem früheren Status im Workflow übergeben wurde.

Der Wert von `ItemsPath` muss ein [Referenzpfad](amazon-states-language-paths.md#amazon-states-language-reference-paths) sein, und dieser Pfad muss zu einem JSON-Array oder Objekt ausgewertet werden. Erwägen Sie beispielsweise die Eingabe in einen `Map`-Zustand, der zwei Arrays enthält, wie im folgenden Beispiel.

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

In diesem Fall könnten Sie angeben, welches Array für `Map` State-Iterationen verwendet werden soll, indem Sie es mit `ItemsPath` auswählen. Die folgende State-Machine-Definition spezifiziert das `ThingsPiratesSay` Array in der Eingabe mithilfe von `ItemsPath` .IT. Anschließend wird für jedes Element im Array eine Iteration des `SayWord` Pass-Status ausgeführt. `ThingsPiratesSay`

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

Bei verschachtelten JSON-Objekten können Sie `ItemsPath` damit ein bestimmtes Objekt innerhalb der Eingabe auswählen. Betrachten Sie die folgende Eingabe mit verschachtelten Konfigurationsdaten:

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

Um über das Webserver-Objekt zu iterieren, würden Sie Folgendes einstellen`ItemsPath`: `$.servers.web`

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

Bei der Verarbeitung von Eingaben gilt der `Map` Status `ItemsPath` danach [`InputPath`](input-output-inputpath-params.md#input-output-inputpath). Er arbeitet mit der tatsächlichen Eingabe in den Status, nachdem die Eingabe `InputPath` gefiltert wurde.

Weitere Informationen zu `Map`-Zuständen finden Sie im Folgenden:
+  [Zuordnungszustand](state-map.md) 
+ [Ordnen Sie die Verarbeitungsmodi des Status zu](state-map.md#concepts-map-process-modes)
+ [Aktionen mit Inline Map wiederholen](tutorial-map-inline.md)
+ [Eingabe- und Ausgabeverarbeitung im `Map` Inline-Status](state-map-inline.md#inline-map-state-output)