在Logic Apps中无需自定义连接器解析CSV转JSON的最优方法
Logic Apps CSV转JSON(无自定义连接器)最优实现方案
核心方案:用原生数据操作组件+表达式完成
全程依赖Logic Apps内置功能,无需额外开发自定义连接器,分两种场景适配不同Logic Apps类型:
场景1:使用Azure Logic Apps(消耗计划)
如果你的Logic Apps是消耗计划类型,按以下步骤操作:
获取CSV原始内容
SFTP触发器触发后,直接使用触发器输出的Content字段(即CSV文件的文本内容)。拆分CSV为行数组
添加「数据操作 > 拆分」组件:
- 「从」:选择触发器的
Content字段 - 「依据」:输入表达式
decodeUriComponent('%0A')(兼容Windows/Linux的换行格式)
这一步会把整个CSV拆分为单独的行,存储为一个数组。
- 分离表头和数据行
- 添加一个「撰写」组件,输入表达式
first(body('拆分')),提取数组第一行作为表头。 - 再添加一个「撰写」组件,输入表达式
skip(body('拆分'), 1),提取剩余所有行作为数据行。
- 将表头拆为字段名数组
再添加一个「拆分」组件:
- 「从」:选择上一步提取表头的「撰写」输出
- 「依据」:输入CSV的分隔符(比如逗号
',',如果是制表符就用decodeUriComponent('%09'))
- 将数据行转换为JSON对象
添加「数据操作 > 选择」组件:
- 「从」:选择提取数据行的「撰写」输出
- 切换到「高级映射模式」,在「映射」框中输入以下表达式:
reduce( zip(body('拆分_表头为字段数组'), split(item(), ',')), createObject(), (current, next) => setProperty(current, first(next), last(next)) )
这个表达式会自动将每一行数据与表头字段对应,生成键值对格式的JSON对象。
- 获取最终JSON数组
「选择」组件的输出就是所有数据行转换后的JSON对象数组,直接使用该结果即可。
场景2:使用Azure Logic Apps(标准计划)
标准计划的Logic Apps提供了更简便的原生组件:
- 获取CSV内容:同样使用SFTP触发器的
Content字段。 - 直接解析CSV为JSON:添加「数据操作 > 解析CSV」组件,设置好分隔符(比如逗号),组件会自动处理带引号的字段、识别表头,直接输出JSON数组,一步完成转换。
注意事项
- 如果CSV字段包含逗号(用引号包裹的标准格式),消耗计划的基础方案需要调整表达式处理引号,此时更推荐使用标准计划的「解析CSV」组件,或者在拆分前用
replace()表达式将引号内的逗号替换为临时标记,拆分后再还原。 - 确保CSV文件的表头和数据行的列数一致,避免转换出错。
内容的提问来源于stack exchange,提问作者K.J.M.O.
相关产品推荐
相关产品推荐

