Azure Logic App遍历键值对问题:无法提取货币代码与汇率
Azure Logic App 遍历货币汇率键值对解决方案
问题核心
你当前解析后的JSON是包含单个对象的数组,直接循环这个数组只能拿到完整的汇率对象,无法直接拆分出单个货币代码(键)和汇率(值)。需要先提取数组内的对象,再通过键数组来遍历每个键值对。
具体实现步骤
提取汇率对象
添加一个Compose动作,输入以下表达式,从解析后的数组中取出唯一的汇率对象:body('Parse_JSON')[0]生成货币代码键数组
再添加一个Compose动作,输入表达式获取所有货币代码的键数组:keys(body('Compose'))执行后,这个动作会输出类似
["AED","AFN","ALL",...]的数组。遍历键数组提取键值对
添加For Each循环,选择上一步Compose的输出作为循环内容。在循环内部:- 设置货币代码变量:直接使用循环项
items('For_Each') - 设置汇率变量:使用表达式通过键获取对应的值
body('Parse_JSON')[0][items('For_Each')]
- 设置货币代码变量:直接使用循环项
替代简化方案(如果货币代码固定)
如果API返回的货币代码是固定的,也可以直接在For Each中手动构造键值对数组,无需依赖keys函数:
createArray( createObject('key', 'AED', 'value', body('Parse_JSON')[0]?['AED']), createObject('key', 'AFN', 'value', body('Parse_JSON')[0]?['AFN']), createObject('key', 'ALL', 'value', body('Parse_JSON')[0]?['ALL']), createObject('key', 'AMD', 'value', body('Parse_JSON')[0]?['AMD']), createObject('key', 'ANG', 'value', body('Parse_JSON')[0]?['ANG']), createObject('key', 'AOA', 'value', body('Parse_JSON')[0]?['AOA']), createObject('key', 'ARS', 'value', body('Parse_JSON')[0]?['ARS']), createObject('key', 'AUD', 'value', body('Parse_JSON')[0]?['AUD']) )
直接循环这个数组,就能通过items('For_Each')?['key']和items('For_Each')?['value']分别获取货币代码和汇率。
内容的提问来源于stack exchange,提问作者Christopher Procknow
相关产品推荐
相关产品推荐

