Azure Logic Apps设计器:如何用Compose表达式从JSON提取指定值?
Logic Apps 提取externalId中的数字片段解决方法
你的场景是已解析JSON的body.externalId值为TestingAndLogid241/Callid-273,需要提取末尾的273,以下是两种可行方案:
方案1:灵活分割提取(推荐)
利用split和last函数组合,适配固定格式的字符串分割,无需依赖固定位置:
last(split(last(split(body('Parse_JSON_from_conversation_(Call_Metadata)')?['externalId'], '/')), '-'))
逻辑说明:
- 先用
split(..., '/')将字符串按斜杠分割,得到数组['TestingAndLogid241', 'Callid-273'] - 用
last()取数组最后一项Callid-273 - 再用
split(..., '-')将该字符串按横杠分割,得到数组['Callid', '273'] - 最后用
last()取数组最后一项,即目标值273
方案2:固定位置截取(仅适用于数字长度固定的场景)
如果确定目标数字始终是3位,可通过substring结合长度计算截取:
substring(body('Parse_JSON_from_conversation_(Call_Metadata)')?['externalId'], sub(length(body('Parse_JSON_from_conversation_(Call_Metadata)')?['externalId']), 3))
逻辑说明:
- 用
length()获取externalId字符串的总长度 - 用
sub()计算起始位置:总长度减去3(数字的固定长度) - 用
substring()从起始位置开始截取到末尾,得到273
使用方法:
在Compose(Issue)步骤的输入框中,直接粘贴上述任意一种表达式即可。
内容的提问来源于stack exchange,提问作者Mathias
相关产品推荐
相关产品推荐

