JSONPath 表达式适用于数据流模拟器,但不适用于步骤函数

JSONPath expression works with Data flow simulator but not with step functions

我正在尝试使用 AWS Step Functions 中的 InputPath 过滤器来 select JSON 状态输入的一部分以与 JSON 路径表达式一起使用。

数据

[
  {
    "ticker": "DE30_EUR",
    "granularity": "M"
  },
  {
    "ticker": "DE30_EUR",
    "granularity": "W"
  },
  {
    "ticker": "DE30_EUR",
    "granularity": "D"
  },
  {
    "ticker": "DE30_EUR",
    "granularity": "H1"
  }
]

当前JSON路径表达式

$[?(@.granularity==H1),?(@.granularity==D),?(@.granularity==W)]

这在将 AWS Step Functions 数据流模拟器与上述数据一起使用时有效,并且只有 returns 个粒度为“H1”、“D”或“W”的数组项。

问题

但是,当将其与步骤函数一起用作 InputPath 或 OutputPath 时,它 returns 一个与数据流模拟器不同的空数组。

试试下面的 JSONPath

$[?(@.granularity=='H1'|| @.granularity=='D' || @.granularity=='W')]