如何从Cloud Workflows实例响应中按指定key提取目标属性值
Cloud Workflows按条件匹配数组元素取值方案
你可以直接使用Cloud Workflows内置的filter数组处理函数实现需求,核心表达式写法如下:
${filter(launchResult.items, item, item.key == "key1")[0].property1}
实现逻辑说明
filter函数接收三个参数:待处理的数组、迭代变量名、过滤条件表达式,执行后会返回所有满足条件的元素组成的新数组- 你要匹配的key为唯一值时,过滤后的数组只会有1个元素,直接取下标0即可获取目标元素,再取对应的property1属性即可
带异常兼容的完整步骤示例
如果要避免不存在对应key的情况引发索引越界错误,可以先判断过滤结果的长度,参考Workflow配置写法:
steps: # 省略你之前调用.get获取launchResult的步骤 - filter_items: assign: # 过滤得到key为key1的所有元素 - matched_items: ${filter(launchResult.items, item, item.key == "key1")} - get_target_value: switch: # 存在匹配项时取值 - condition: ${len(matched_items) > 0} assign: - target_property1: ${matched_items[0].property1} # 无匹配项时赋值默认值 - condition: true assign: - target_property1: "" # 可自定义为你需要的默认值
内容的提问来源于stack exchange,提问作者Shamaneiro
相关产品推荐
相关产品推荐

