

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à.

# Utilizzo dei percorsi JSONPath
<a name="amazon-states-language-paths"></a>

**Gestione dello stato e trasformazione dei dati**  
Scopri come [passare dati tra stati con variabili](workflow-variables.md) e [trasformare i dati con](transforming-data.md) JSonata.

In Amazon States Language, un *percorso* è una stringa che inizia con e `$` che puoi utilizzare per identificare i componenti all'interno del testo JSON. I percorsi seguono la [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)sintassi, disponibile solo quando `QueryLanguage` è impostata su JSONPath. È possibile specificare un percorso per accedere a sottoinsiemi di input quando si specificano i valori di `InputPath`, `ResultPath` e `OutputPath`.

[È necessario utilizzare la notazione tra parentesi quadre se il nome del campo contiene caratteri non inclusi nella `member-name-shorthand` definizione della regola ABNF. JsonPath ](https://www.ietf.org/archive/id/draft-ietf-jsonpath-base-21.html#jsonpath-abnf) Pertanto, per codificare caratteri speciali, come i segni di punteggiatura (esclusi`_`), è necessario utilizzare la notazione tra parentesi quadre. Ad esempio, `$.abc.['def ghi']`. 

## Percorsi di riferimento
<a name="amazon-states-language-reference-paths"></a>

Un *percorso di riferimento* è un percorso la cui sintassi è limitata in modo tale che può identificare solo un singolo nodo in una struttura JSON:
+ Puoi accedere a campi di oggetto unicamente con la notazione del punto (`.`) e tra parentesi quadra (`[ ]`).
+ Le funzioni come `length()` non sono supportate.
+ Operatori lessicali, che non sono simbolici, ad esempio non sono supportati. `subsetof`
+ Il filtraggio tramite espressioni regolari o facendo riferimento a un altro valore nella struttura JSON non è supportato.
+ Gli operatori`@`, `,``:`, e `?` non sono supportati

Ad esempio, se i dati di input dello stato contengono i seguenti valori:

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

I percorsi di riferimento seguenti restituirebbero quanto segue.

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

Alcuni stati utilizzano percorsi e percorsi di riferimento per controllare il flusso di una macchina a stati o configurare impostazioni o opzioni di uno stato. Per ulteriori informazioni, consulta [Modellazione dell'elaborazione del percorso di input e output del flusso di lavoro con il simulatore di flusso di dati](https://aws.amazon.com/blogs/compute/modeling-workflow-input-output-path-processing-with-data-flow-simulator/) e [Utilizzo efficace di JSONPath](https://aws.amazon.com/blogs/compute/using-jsonpath-effectively-in-aws-step-functions/) in. AWS Step Functions

### Appiattimento di una serie di array
<a name="flatten-array-of-arrays"></a>

Se lo [Stato del flusso di lavoro della mappa](state-map.md) stato [Stato del flusso di lavoro parallelo](state-parallel.md) o nelle tue macchine a stati restituisce un array di array, puoi trasformarli in una matrice piatta con il campo. [ResultSelector](input-output-inputpath-params.md#input-output-resultselector) Puoi includere questo campo nella definizione dello stato Parallel o Map per manipolare il risultato di questi stati.

Per appiattire gli array, utilizzate la sintassi: `[*]` nel `ResultSelector` campo, come mostrato nell'esempio seguente.

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

Per esempi che mostrano come appiattire un array, consultate il *passaggio* 3 nei seguenti tutorial:
+ [Elaborazione di dati batch con una funzione Lambda in Step Functions](tutorial-itembatcher-param-task.md)
+ [Elaborazione di singoli articoli con una funzione Lambda in Step Functions](tutorial-itembatcher-single-item-process.md)