Azure Logic Apps字典变量初始化及对象合并方法咨询
Azure Logic Apps 字典变量初始化及对象合并实现
一、初始化字典类型变量
Azure Logic Apps 没有单独的「字典」类型,可直接用**对象(Object)**类型模拟字典(键值对结构完全匹配)。创建变量时:
- 类型选择「对象」
- 初始值设为
{}(空对象)
二、合并对象集合的具体步骤
假设从API获取的原始数据存在变量RawData中,字典变量命名为NameTypeMap,按以下步骤操作:
- 添加For Each循环:遍历
variables('RawData')中的每一项 - 判断当前Name是否已在字典中:在循环内添加「条件」操作,使用
contains函数判断:contains(variables('NameTypeMap'), items('For_each')?['Name']) - 处理已存在的Name:条件为「是」时,更新字典中对应Name的Types数组(用
union去重合并):setProperty(variables('NameTypeMap'), items('For_each')?['Name'], union(variables('NameTypeMap')[items('For_each')?['Name']], createArray(items('For_each')?['Type']))) - 处理新的Name:条件为「否」时,向字典中添加新的键值对,Types设为包含当前Type的数组:
setProperty(variables('NameTypeMap'), items('For_each')?['Name'], createArray(items('For_each')?['Type'])) - 转换为目标数组:循环结束后,用
values函数提取字典的所有值,得到最终合并结果:values(variables('NameTypeMap'))
最终效果
经过上述步骤,即可将你提供的原始数据:
[ { "Name": "Mr. Test Smith", "Type": "ACCOUNTSPAYABLE" }, { "Name": "Mr. Test Smith", "Type": "DISPATCH" }, { "Name": "Different Name", "Type": "ACCOUNTSPAYABLE" } ]
转换为目标格式:
[ { "Name": "Mr. Test Smith", "Types": [ "ACCOUNTSPAYABLE", "DISPATCH" ] }, { "Name": "Different Name", "Types": [ "ACCOUNTSPAYABLE" ] } ]
内容的提问来源于stack exchange,提问作者MikeSteigerwald
相关产品推荐
相关产品推荐

