Azure Data Factory:按指定varname动态获取JSON对象的value值
解决方案
针对你的需求,正确的动态内容表达式需要结合数组筛选、安全访问和空值替换来实现:
当varname是变量时
@coalesce(first(filter(activity().outputs?.body?.data, item().varname == variables('varname')))?.value, '')
当varname是固定字符串(如'foo_id')时
@coalesce(first(filter(activity().outputs?.body?.data, item().varname == 'foo_id'))?.value, '')
表达式逻辑拆解
filter(activity().outputs?.body?.data, item().varname == [目标值]):遍历返回的JSON数组,筛选出varname与目标值匹配的对象first(...):取筛选结果的第一个对象(假设每个varname唯一,若存在多匹配可根据需求调整)?.value:安全访问对象的value属性,避免未找到对象时抛出空引用错误coalesce(..., ''):如果前面的结果为null(即无匹配对象),则返回空字符串
原表达式无效原因
你之前使用的substring是字符串截取函数,完全不适用JSON数组的对象查找场景,因此无法得到预期结果。
内容的提问来源于stack exchange,提问作者TheDemonLord
相关产品推荐
相关产品推荐

