如何有条件地 return 特定值与 JSONPath 中的另一个值?

How to conditionally return specific value with another in JSONPath?

我有一个这样的对象:

{
    "content": {
        "iteration_size": 1
    }
}

我需要一个 JSONPath,如果 next_item 的值恰好为 1,则 returns null,否则 iteration_size 的值。所以上面应该 return null"iteration_size": 2 应该 return 2. 这在 JSONPath 中可能吗?

我试过 $.content[?(@.iteration_size == 1)].iteration_size 的变体,但我试过的两个在线评估者甚至不同意我几次尝试的结果。

用例是 AWS Batch API,其中 array size 必须是 null 或 2 到 10,000 之间的数字。

AWS Support 建议这是不可能的,我应该改为在 step 函数中使用一个分支。我最终替换了这个:

.next(batch_submit_job)
[…]

有了这个:

.next(
    aws_stepfunctions.Choice(self, "check_maybe_array")
    .when(
        aws_stepfunctions.Condition.number_equals("$.content.iteration_size", 1),
        single_batch_submit_job,
    )
    .otherwise(array_batch_submit_job)
    .afterwards()
)

其中只有 array_batch_submit_job 有一个 array_size。请注意步骤函数的其余部分如何结束 inside 最后一个 next() 调用而不是在顶层。