Step Functions MapIterator JSONata 单元素返回类型异常问题
AWS Step Functions Map Iterator 单元素返回字符串问题解析
这不是Bug,是JSONata的默认隐式解包特性导致的:当JSONata表达式筛选后的结果只有单个元素时,会自动将数组“解包”为单个值(这里就是字符串);只有当结果包含两个及以上元素时,才会保留数组格式。而Step Functions的Map Iterator要求Items必须是数组类型,所以单元素场景就会触发类型错误。
解决方法:强制返回数组格式
你可以通过两种方式让表达式始终返回数组:
- 使用
$array()函数:显式将结果转为数组,不管元素数量多少"{% $array($states.input.object_keys[Size>0].Key) %}" - 用方括号包裹筛选结果:手动构造数组
"{% [$states.input.object_keys[Size>0].Key] %}"
这两种方式都能确保即使只有一个符合条件的元素,返回的也是数组类型,完美适配Map Iterator的输入要求。
内容的提问来源于stack exchange,提问作者datahack
相关产品推荐
相关产品推荐

