You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mule 4中将含引号内嵌逗号的CSV转换为JSON

Mule CSV转JSON引号解析异常解决方案

问题根因

异常由CSV解析参数配置错误直接导致:

  • file:listener 中配置的quote='将单引号设为CSV字段包裹符,但你输入的CSV里Address字段用双引号包裹,解析器无法识别双引号为包裹边界,直接将Address内部的逗号识别为字段分隔符,导致字段拆分错乱,原Phone字段内容丢失
  • 配置的escape="\\"指定反斜杠为转义符,但标准CSV中双引号包裹字段内的双引号是用两个双引号转义,转义规则不匹配导致引号解析异常

解决方案

步骤1:修改file listener的CSV解析参数

将outputMimeType中的包裹符、转义符修改为匹配你输入CSV的双引号规则,修改后的完整流程配置如下:

<flow name="csv-Flow">
    <file:listener doc:name="File" directory="${path}" config-ref="File-Inbound" outputMimeType="application/csv; quote=&quot;&quot;&quot;; escape=&quot;&quot;&quot;; separator=&quot;,&quot;; header=true">
        <scheduling-strategy>
            <fixed-frequency frequency="${frequency}"/>
        </scheduling-strategy>
    </file:listener>
    <set-payload value='#[%dw 2.0
    output application/json
    ---
    payload map {
     "Name": $.Name,
     // 若需要Address为嵌套JSON对象而非字符串,替换为 "Address": read($.Address, "application/json")
     "Address": $.Address,
     "Phone": $.Phone
    }]' doc:name="Set Payload"/>
    <logger level="INFO" doc:name="Logger" message="#[payload]"/>
</flow>

步骤2:按需调整Address字段输出格式

  • 若需要Address为字符串格式:标准JSON规范要求字符串内部的双引号必须转义,输出时自动添加的\属于合规格式,符合JSON解析要求
  • 若需要Address为嵌套JSON对象:使用read($.Address, "application/json")将字符串解析为JSON对象即可,输出时不会有额外转义

验证效果

修改配置后重新运行流程,即可正确拆分3个字段,Phone字段值为123456789,Address字段包含完整的JSON内容,符合预期。

内容的提问来源于stack exchange,提问作者SkyC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:15:01