

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.

# JSONPath Pfade verwenden
<a name="amazon-states-language-paths"></a>

**Status verwalten und Daten transformieren**  
Erfahren Sie mehr über das [Übergeben von Daten zwischen Zuständen mithilfe von Variablen](workflow-variables.md) und das [Transformieren von Daten mit JSONata](transforming-data.md).

In der Sprache Amazon States ist ein *Pfad* eine Zeichenfolge`$`, mit der Sie Komponenten innerhalb von JSON-Text identifizieren können. Pfade folgen der [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)Syntax, die nur verfügbar ist, wenn der auf gesetzt `QueryLanguage` ist JSONPath. Sie können einen Pfad für den Zugriff auf Teilsätze der Eingaben beim Festlegen von Werten für `InputPath`, `ResultPath`, und `OutputPath` angeben.

Sie müssen die Notation mit eckigen Klammern verwenden, wenn Ihr Feldname ein Zeichen enthält, das nicht in der `member-name-shorthand` Definition der [JsonPath ABNF-Regel](https://www.ietf.org/archive/id/draft-ietf-jsonpath-base-21.html#jsonpath-abnf) enthalten ist. Um Sonderzeichen wie Satzzeichen (ausgenommen`_`) zu kodieren, müssen Sie daher die Notation mit eckigen Klammern verwenden. Beispiel, `$.abc.['def ghi']`. 

## Referenzpfade
<a name="amazon-states-language-reference-paths"></a>

Ein *Referenzpfad* ist ein Pfad, dessen Syntax auf eine Weise begrenzt ist, dass er nur einen einzelnen Knoten in einer JSON-Struktur identifizieren kann:
+ Sie können auf Objektfelder zugreifen, indem Sie nur Punkt (`.`)- und Klammer (`[ ]`)-Notation verwenden.
+ Funktionen wie `length()` werden nicht unterstützt.
+ Lexikalische Operatoren, die nicht symbolischer Natur sind, z. B. werden nicht unterstützt. `subsetof`
+ Das Filtern nach regulären Ausdrücken oder durch Verweisen auf einen anderen Wert in der JSON-Struktur wird nicht unterstützt.
+ Die Operatoren `@``,`,`:`, und `?` werden nicht unterstützt

Zum Beispiel, wenn Zustandseingabedaten die folgenden Werte enthalten:

```
{
  "foo": 123,
  "bar": ["a", "b", "c"],
  "car": {
      "cdr": true
  }
}
```

In diesem Fall würden die folgenden Referenzpfade Folgendes zurückgeben:

```
$.foo => 123
$.bar => ["a", "b", "c"]
$.car.cdr => true
```

Bestimmte Zustände verwenden Pfade und Referenzpfade, um den Ablauf eines Zustandsautomaten zu steuern oder um Einstellungen oder Optionen eines Zustands zu konfigurieren. Weitere Informationen finden Sie unter [Modellieren der Eingabe- und Ausgabepfadverarbeitung von Workflows mit dem Datenflusssimulator](https://aws.amazon.com/blogs/compute/modeling-workflow-input-output-path-processing-with-data-flow-simulator/) und [ JSONPath Effektive Verwendung in AWS Step Functions](https://aws.amazon.com/blogs/compute/using-jsonpath-effectively-in-aws-step-functions/).

### Ein Array von Arrays reduzieren
<a name="flatten-array-of-arrays"></a>

Wenn der [Workflow-Status zuordnen](state-map.md) Status [Status des parallelen Workflows](state-parallel.md) oder in Ihren Zustandsmaschinen ein Array von Arrays zurückgibt, können Sie diese mit dem Feld in ein flaches Array umwandeln. [ResultSelector](input-output-inputpath-params.md#input-output-resultselector) Sie können dieses Feld in die Zustandsdefinition Parallel oder Map aufnehmen, um das Ergebnis dieser Zustände zu manipulieren.

Um Arrays zu reduzieren, verwenden Sie die Syntax: `[*]` in dem `ResultSelector` Feld, wie im folgenden Beispiel gezeigt.

```
"ResultSelector": {
    "flattenArray.$": "$[*][*]"
  }
```

Beispiele, die zeigen, wie ein Array geglättet wird, finden Sie in *Schritt 3* der folgenden Tutorials:
+ [Verarbeitung von Batchdaten mit einer Lambda-Funktion in Step Functions](tutorial-itembatcher-param-task.md)
+ [Verarbeitung einzelner Elemente mit einer Lambda-Funktion in Step Functions](tutorial-itembatcher-single-item-process.md)