【问题标题】:Mule Dataweave Map with SplitBy使用 SplitBy 的 Mule Dataweave 地图
【发布时间】:2018-10-24 19:41:00
【问题描述】:

我有一个 Mule 流,它将 CSV 数据转换为 XML。有一个字段我需要按字符映射和拆分。我收到一条错误消息,指出

Cannot coerce a :array to a :object.

这是我需要达到的结果:

<Dataset>
<ListingName> Name Here </ListingName>
<Description> Description Here </Description>
<Price>110,000</Price>
<SerialSet>
    <Hours>1255</Hours>
    <Serial>9110136</Serial>
</SerialSet>
<Dealer> Name Here </Dealer>
<DealerAddress>Continental, Ohio 45831</DealerAddress>
<Date>2018-10-24</Date>

这是我正在使用的流程:

    <dw:transform-message doc:name="Transform Message">
    <dw:input-payload mimeType="application/csv"/>
        <dw:set-payload><![CDATA[%dw 1.0
        %output application/xml
        ---
        {
        Tractor: {
           (payload map ((payload01 , indexOfPayload01) -> {
           Dataset: {
             ListingName: payload01.ListingName,
             Description: payload01.Description,
             Price: payload01.Price,
             SerialSet: (payload01.Serial replace /[{}]/ with "" splitBy ";")  map using (data = $ splitBy ":")   {
                (data[0]) : data[1]
             },
             Dealer: payload01.DealerName,
             DealerAddress: payload01.DealerAddress,
             Date: now as :string {format: "yyyy-MM-dd"}
             }
          }))
        }
        }
        ]]></dw:set-payload>

但是,我的流程回退了以下内容:

Cannot coerce a :array to a :object.

这是我尝试为 SerialSet 字段映射的原始数据的样子:

 <SerialSet>Hours: 3280; Serial Number: A7809001946; Condition: Used; Stock Number: 6465</SerialSet>

应该是基于键 -> 值对的每个项目的节点,在这种情况下应该如下所示:

<SerialSet>
  <Hours>3280</Hours> 
  <Serial Number>A7809001946</Serial Number>
  <Condition>Used</Condition> 
  <Stock Number>6465</Stock Number>
</SerialSet>

【问题讨论】:

    标签: mule esb dataweave


    【解决方案1】:

    如果有人偶然发现,这里是修复:

    Serial: {
        ((payload01.Serial replace /[{}]/ with "" splitBy ";")  map using (data = $ splitBy ":")   {
                    (data[0]) : data[1]
                 })},
    

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 2016-01-12
      • 1970-01-01
      • 2018-07-11
      • 2016-06-07
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多