【问题标题】:Comma separated string to Map - Mulesoft逗号分隔的字符串映射 - Mulesoft
【发布时间】:2018-03-01 15:59:30
【问题描述】:

我有一个逗号分隔的字符串,看起来像这样

    CODE,TYPE,BATCHDATE
    SQ22,LOAD,20170505
    SF55,LPOO,20170908
    PL25,KLLQ,20170707

我想创建一个像这样的有效载荷映射

    CODE=SQ22,TYPE=LOAD,BATCHDATE=20170505
    CODE=SF55,TYPE=LPOO,BATCHDATE=20170908
    CODE=PL25,TYPE=KLLQ,BATCHDATE=20170707

这样做的最佳方法是什么?我在字符串和其他变压器之间尝试了一个变压器,但我总是遇到异常。Example of flow

    %dw 1.0
    $output application/csv
    ---
    payload

第二个变压器是

    %dw 1.0
    $output application/java
    ---
    payload map ((payload,index) -> {
    batchCode: payload.CODE,
    batchType: payload.TYPE,
    batchDate: payload.BATCHDATE
    } as :object {
    class: "com.example.integration.Batch"
    })

我在哪里犯错的任何想法?

【问题讨论】:

    标签: java string csv dictionary mule


    【解决方案1】:

    您的代码适用于这两种情况。请尝试将 dataweave 指令从 $output application/java 更改为 %output application/java

    更新:- 根据提到的错误,dataweave 需要 xml 输入。请为 CSV <dw:input-payload mimeType="application/csv"/> 添加 MIME 类型。代码看起来像

        <dw:transform-message doc:name="Transform Message">
            <dw:input-payload mimeType="application/csv"/>
            <dw:set-payload><![CDATA[%dw 1.0
                %output application/java
                ---
                payload]]>
            </dw:set-payload>
        </dw:transform-message>
    

    希望对你有帮助

    【讨论】:

    • 感谢您的回答,但结果仍然相同,例外是:序言中的意外字符'C(代码85);预期'
    猜你喜欢
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    相关资源
    最近更新 更多