如何在WSO2 Integration Studio中使用CSV-connector读取文件CSV转JSON
WSO2 Integration Studio 直接读取文件内CSV转JSON实现方案
你已经调通了直接传入CSV payload转JSON的逻辑,只需要补上文件读取环节即可完成需求,不需要额外安装第三方非官方连接器,用到的都是WSO2自带的组件。
所需组件清单
- 核心转换组件:你当前正在使用的CSV连接器,用它的
csv:read操作完成CSV结构到JSON的格式转换 - 文件读取组件:根据CSV文件的存储位置选择对应内置组件即可:
- CSV存放在本地服务器/运行环境文件系统、FTP/SFTP服务器时,直接使用官方内置的File Connector,在连接器面板搜索即可添加,无需额外下载
- CSV是打包在集成项目资源目录下的静态文件时,用内置的Script Mediator或Class Mediator读取类路径资源即可,不需要额外加连接器
- 流程调整组件:内置的Property Mediator、PayloadFactory Mediator,用来做参数格式调整、异常判断
具体实现步骤
引入文件读取能力
打开Integration Studio右侧连接器面板,搜索File,将官方File Connector添加到当前ESB配置项目,添加后无需重启即可使用。配置文件读取逻辑
在CSV转换节点之前,拖拽添加file:read操作,配置核心参数:sourcePath:填写CSV文件的实际访问路径,本地文件示例为/opt/wso2/data/user_list.csv,FTP/SFTP文件填写对应服务器上的文件路径即可fileEncoding:显式指定CSV文件的编码,常用值为UTF-8,如果是Windows下生成的GBK编码CSV必须在这里指定对应编码,否则会出现乱码contentType:填写text/csv
该操作执行完成后,会自动将读取到的CSV文本内容设置为当前消息的payload,无需手动做变量赋值。
复用已调通的CSV转JSON逻辑
你之前写好的csv:read配置不需要大改,只需要确认参数:content参数留空,默认取当前消息payload(也就是刚从文件读到的CSV文本)- 如果CSV首行是表头,将
headerPresent参数设为true,转换后的JSON会自动用表头字段作为key - 根据实际分隔符配置
separator参数,逗号分隔填,,制表符分隔填\t
核心流程配置参考:
<!-- 读取目标路径下的CSV文件 --> <file.read> <sourcePath>/opt/wso2/data/user_list.csv</sourcePath> <fileEncoding>UTF-8</fileEncoding> <contentType>text/csv</contentType> </file.read> <!-- 执行CSV到JSON的转换 --> <csv.read> <headerPresent>true</headerPresent> <separator>,</separator> <skipHeaders>false</skipHeaders> </csv.read>可选异常兜底配置
在file:read节点之后添加Property Mediator,判断当前payload是否为空,拦截空文件场景;File Connector本身会在文件不存在、权限不足时抛出标准错误码,可搭配Fault Mediator做统一错误返回。
注意事项
- 所有用到的组件均为WSO2官方内置组件,不存在版本兼容问题,不需要额外找第三方插件
- 若读取文件时报权限错误,先确认运行Integration Studio/WSO2 EI进程的系统用户对目标CSV文件有读权限,不属于配置错误
- 若转换后的JSON出现乱码,优先核对
file:read节点配置的编码和CSV文件实际编码是否一致,不要默认使用UTF-8
内容的提问来源于stack exchange,提问作者Ruby
相关产品推荐
相关产品推荐

