Azure Data Factory中如何向现有数组追加子元素filterId
解决方案
要将filterId添加到engineId:398001所在的对象中,不要使用union(它的作用是合并数组),应该用addProperty函数给指定对象追加属性。
正确的SetVariable表达式
如果需要保留完整的JSON结构,使用以下表达式重新构建整个对象:
@{ createObject( 'name', activity('GetEngines').output.name, 'value', createArray( createObject( 'branch', createArray( addProperty( activity('GetEngines').output.value[0].branch[0], 'filterId', variables('fltr') ) ) ) ) ) }
表达式说明
addProperty:专门用于给JSON对象添加新属性,第一个参数是目标对象,第二个是属性名,第三个是属性值。这里直接定位到branch数组里包含engineId:398001的对象,给它追加filterId和对应变量值。createObject/createArray:用于重新构建原JSON的层级结构,确保修改后的对象嵌入到正确位置,不会破坏原有格式。
错误原因解析
你之前用union合并数组时,把拼接出来的字符串"filterId":398291当成数组元素加入,这会让它成为独立的数组项,而非目标对象的属性,因此输出不符合预期。
内容的提问来源于stack exchange,提问作者Thanatos
相关产品推荐
相关产品推荐

