

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

# ItemsPath (Peta, JSONPath hanya)
<a name="input-output-itemspath"></a>

**Mengelola status dan mengubah data**  
Halaman ini mengacu pada JSONPath. Step Functions baru-baru ini menambahkan variabel dan JSONata untuk mengelola status dan mengubah data.  
Pelajari tentang [Melewati data dengan variabel](workflow-variables.md) dan [Mengubah data dengan JSONata](transforming-data.md).

Dalam keadaan JSONPath berbasis, gunakan `ItemsPath` bidang untuk memilih array atau objek dalam input JSON yang diberikan ke `Map` status. Secara default, `Map` status disetel `ItemsPath` ke`$`, yang memilih seluruh input. 
+  Jika input ke `Map` status adalah array JSON, ia menjalankan iterasi untuk setiap item dalam array, meneruskan item itu ke iterasi sebagai input 
+  Jika input ke `Map` status adalah objek JSON, ia menjalankan iterasi untuk setiap pasangan kunci-nilai dalam objek, meneruskan pasangan ke iterasi sebagai input 

**catatan**  
Anda dapat menggunakan `ItemsPath` dalam *status Peta Terdistribusi* hanya jika Anda menggunakan input JSON yang diteruskan dari status sebelumnya dalam alur kerja.

Nilai `ItemsPath` harus berupa [Jalur Referensi](amazon-states-language-paths.md#amazon-states-language-reference-paths), dan jalur itu harus mengevaluasi ke array atau objek JSON. Misalnya, pertimbangkan input ke status `Map` yang mencakup dua array, seperti contoh berikut.

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

Dalam hal ini, Anda dapat menentukan array mana yang akan digunakan untuk iterasi `Map` status dengan memilihnya. `ItemsPath` Definisi mesin status berikut menentukan `ThingsPiratesSay` array dalam input menggunakan `ItemsPath` .It kemudian menjalankan iterasi status `SayWord` pass untuk setiap item dalam array. `ThingsPiratesSay`

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

Untuk objek JSON bersarang, Anda dapat menggunakan `ItemsPath` untuk memilih objek tertentu dalam input. Pertimbangkan masukan berikut dengan data konfigurasi bersarang:

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

Untuk mengulangi objek server web, Anda akan mengatur `ItemsPath` ke`$.servers.web`:

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

Saat memproses input, `Map` status berlaku `ItemsPath` setelahnya [`InputPath`](input-output-inputpath-params.md#input-output-inputpath). Ini beroperasi pada input efektif ke negara setelah `InputPath` menyaring input.

Untuk informasi selengkapnya tentang status `Map`, lihat hal berikut:
+  [Status peta](state-map.md) 
+ [Mode pemrosesan status peta](state-map.md#concepts-map-process-modes)
+ [Ulangi tindakan dengan Peta Inline](tutorial-map-inline.md)
+ [Pemrosesan input dan output `Map` status sebaris](state-map-inline.md#inline-map-state-output)