2016-11-12 7 views
0

私はXMLからjsonデータをマッピングするためにdwを使用しています。しかし、単一のデータに対して間違った出力を得る。 XMLコード:mulesoftのanypointで単一のデータの出力が間違っています

<?xml version="1.0" encoding="UTF-8" ?> 
    <orders>  
     <order> 
      <id>4358153417</id> 
       <fulfillment> 
       <tracking_number>915</tracking_number> 
       <line-items> 
        <id>8367362760</id> 
       </line-items> 
      </fulfillment> 
     </order> 
    </orders> 

ここに私のDWコードがある -

{orders={order=[{id=4360193928, fulfillment={tracking_number=null, line-items=null}}, {id=null, fulfillment={tracking_number=null, line-items=null}}]}} 

しかし、次のことがなければならない - -

{orders={order={id=4360193928, fulfillment={tracking_number=915, line-items=[{id=8371710984},{id=8371710985}]}}}} 

<dw:set-payload><![CDATA[%dw 1.0 
      %output application/json 
      --- 
      { 
      orders: 
      { 
      order: payload.orders.order map ((order , indexOfOrder) -> { 
      id: order.id, 
      fulfillment: { 
      tracking_number: order.fulfillment.tracking_number, 
      line-items: order.fulfillment.line-items 
      } 
      }) 
      } 
      }]]> 
     </dw:set-payload> 

出力余分なヌル順序

これが発生します複数注文の場合はOKです。 助けてください。

答えて

0

繰り返し主体の前に*を使用する必要があります。このことができます。この

%dw 1.0 
%output application/json 
--- 
{ 
orders: 
    { 
     order: payload.orders.*order map ((order , indexOfOrder) -> { 
      id: order.id, 
      fulfillment: { 
       tracking_number: order.fulfillment.tracking_number, 
       line-items: order.fulfillment.line-items 
      } 
     }) 
    } 
} 

希望をお試しください。..

関連する問題