

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan JSONPath jalur
<a name="amazon-states-language-paths"></a>

**Mengelola status dan mengubah data**  
Pelajari tentang [Melewati data antar status dengan variabel](workflow-variables.md) dan [Mengubah data dengan JSONata](transforming-data.md).

Dalam Bahasa Status Amazon, *jalur* adalah string yang dimulai dengan `$` yang dapat Anda gunakan untuk mengidentifikasi komponen dalam teks JSON. Jalur mengikuti [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)sintaks, yang hanya tersedia ketika `QueryLanguage` diatur ke JSONPath. Anda dapat menentukan jalur untuk mengakses himpunan bagian dari input ketika menentukan nilai untuk `InputPath`, `ResultPath`, dan `OutputPath`.

Anda harus menggunakan notasi kurung siku jika nama bidang Anda berisi karakter apa pun yang tidak termasuk dalam `member-name-shorthand` definisi aturan [JsonPath ABNF](https://www.ietf.org/archive/id/draft-ietf-jsonpath-base-21.html#jsonpath-abnf). Oleh karena itu, untuk menyandikan karakter khusus, seperti tanda baca (tidak termasuk`_`), Anda harus menggunakan notasi braket siku. Misalnya, `$.abc.['def ghi']`. 

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

*Jalur referensi* adalah jalur yang sintaksisterbatas sedemikian rupa sehingga dapat mengidentifikasi hanya satu simpul dalam struktur JSON:
+ Anda dapat mengakses bidang objek hanya menggunakan notasi titik (`.`) dan kurung persegi (`[ ]`).
+ Fungsi seperti `length()` tidak didukung.
+ Operator leksikal, yang non-simbolis, seperti `subsetof` tidak didukung.
+ Pemfilteran dengan ekspresi reguler atau dengan mereferensikan nilai lain dalam struktur JSON tidak didukung.
+ Operator`@`, `,``:`,, dan `?` tidak didukung

Misalnya, jika data input status berisi nilai berikut:

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

Jalur referensi berikut akan mengembalikan berikut.

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

Status tertentu menggunakan jalur dan jalur referensi untuk mengontrol aliran mesin status atau mengonfigurasi pengaturan status atau opsi. Untuk informasi selengkapnya, lihat [Pemodelan alur kerja input dan pemrosesan jalur output dengan simulator aliran data](https://aws.amazon.com/blogs/compute/modeling-workflow-input-output-path-processing-with-data-flow-simulator/) dan [Menggunakan JSONPath secara efektif di AWS Step Functions](https://aws.amazon.com/blogs/compute/using-jsonpath-effectively-in-aws-step-functions/).

### Meratakan array array
<a name="flatten-array-of-arrays"></a>

Jika [Memetakan status alur kerja](state-map.md) status [Status alur kerja paralel](state-parallel.md) atau di mesin status Anda mengembalikan array array, Anda dapat mengubahnya menjadi array datar dengan [ResultSelector](input-output-inputpath-params.md#input-output-resultselector) bidang. Anda dapat menyertakan bidang ini di dalam definisi status Paralel atau Peta untuk memanipulasi hasil status ini.

Untuk meratakan array, gunakan sintaks: `[*]` di `ResultSelector` bidang seperti yang ditunjukkan pada contoh berikut.

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

Untuk contoh yang menunjukkan cara meratakan array, lihat *Langkah 3* dalam tutorial berikut:
+ [Memproses data batch dengan fungsi Lambda di Step Functions](tutorial-itembatcher-param-task.md)
+ [Memproses item individual dengan fungsi Lambda di Step Functions](tutorial-itembatcher-single-item-process.md)