本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ItemsPath
ItemsPath
字段用于 Map 状态中以选择输入中的数组。Map
状态用于对输入中包含的数组中的每个项目迭代步骤。默认情况下,Map
状态将 ItemsPath
设置为 $
,同时选择整个输入。如果 Map
状态的输入是 JSON 数组,则它将对数组中的每个项目运行一次迭代,并将该项目作为输入传递给迭代。有关这一用法的示例,请参阅映射状态教程。
ItemsPath
字段可让您在输入中指定位置,以找到用于迭代的 JSON 数组。ItemsPath
的值必须是参考路径,并且它必须标识一个作为 JSON 数组的值。例如,考虑 Map
状态的输入,其中包含两个数组,如以下示例所示。
{
"ThingsPiratesSay": [
{
"say": "Avast!"
},
{
"say": "Yar!"
},
{
"say": "Walk the Plank!"
}
],
"ThingsGiantsSay": [
{
"say": "Fee!"
},
{
"say": "Fi!"
},
{
"say": "Fo!"
},
{
"say": "Fum!"
}
]
}
在这种情况下,您可以通过 ItemsPath
选择一个特定的数组来指定用于 Map
状态迭代的数组。以下状态机定义使用 ItemsPath
来指定输入中的 ThingsPiratesSay
数组,并将对 ThingsPiratesSay
数组中的每个项目运行 SayWord
传递状态的迭代。
{
"StartAt": "PiratesSay",
"States": {
"PiratesSay": {
"Type": "Map",
"ItemsPath": "$.ThingsPiratesSay",
"Iterator": {
"StartAt": "SayWord",
"States": {
"SayWord": {
"Type": "Pass",
"End": true
}
}
},
"End": true
}
}
}
在处理输入期间,ItemsPath
在 InputPath 之后应用。InputPath
筛选输出后,它将对状态的有效输入进行操作。
有关 Map
状态的更多信息,请参阅以下内容: