0

`入力:-

{"id":
{
 "items" : [
{
"merchant_ref": "icici",
"transaction_tag": "sdfhisdb",
"transaction_type": "balance_inquiry",
"method": "valuelink",
"order_number": "123",
"amount": "1000",
"currency_code": "CAD",
"token": {
  "token_type": "",
  "token_data": {
    "type": "",
    "value": "",
    "cardholder_name": "",
    "exp_date": ""
  }
},
{
"merchant_ref": "icici",
"transaction_tag": "sdfhisdb",
"transaction_type": "balance_inquiry",
"method": "valuelink",
"order_number": "123",
"amount": "2000",
"currency_code": "",
"token": {
  "token_type": "",
  "token_data": {
    "type": "",
    "value": "",
    "cardholder_name": "",
    "exp_date": ""
  }
},  
{
"merchant_ref": "icici",
"transaction_tag": "sdfhisdb",
"transaction_type": "authorize",
"method": "token",
"order_number": "123",
"amount": "3000",
"currency_code": "",
"token": {
  "token_type": "",
  "token_data": {
    "type": "",
    "value": "",
    "cardholder_name": "",
    "exp_date": ""
  }
}

] } }`

出力:- Null B なし。Null B なしのこの出力に基づいて別のマッピングを行う必要があるため

<A>
  <B>
    <merchant_ref>icici</merchant_ref>
    <transaction_tag>sdfhisdb</transaction_tag>
    <transaction_type>balance_inquiry</transaction_type>
    <method>valuelink</method>
    <order_number>123</order_number>
    <amount>1000</amount>
    <currency_code>CAD</currency_code>
    <token>
      <token_type></token_type>
      <token_data>
        <type></type>
        <value></value>
        <cardholder_name></cardholder_name>
        <exp_date></exp_date>
      </token_data>
    </token>
  </B>
  <B>
    <merchant_ref>icici</merchant_ref>
    <transaction_tag>sdfhisdb</transaction_tag>
    <transaction_type>balance_inquiry</transaction_type>
    <method>valuelink</method>
    <order_number>123</order_number>
    <amount>2000</amount>
    <currency_code></currency_code>
    <token>
      <token_type></token_type>
      <token_data>
        <type></type>
        <value></value>
        <cardholder_name></cardholder_name>
        <exp_date></exp_date>
      </token_data>
    </token>
  </B>
</A>

以下のdataweaveを使用してxmlの内容をチェックしようとしていますが、出力がnull Bのようになります。これを回避する方法を提案してください。各要素に対してxmlからxmlへの別のポイントツーポイントマッピングを行う必要があるため、そのマッピングはBがnullでもある追加のマップを作成しています。

これを回避する方法を提案してください

%dw 1.0
%output application/xml
---

A: payload.id.*items mapObject
{
	
      	B:$  when $.method=="valuelink"      
      
      otherwise {
      	
      }
     }

4

1 に答える 1

0

以下で動作するはずです。B:$ は () でカプセル化されていることに注意してください。つまり、'when' 条件が true の場合にのみ、このプロパティを出力に含めます。

%dw 1.0
%output application/xml
---
{
    A: payload.A.*B mapObject {
        (B:$) when $.method == 'valuelink'
    }
}
于 2016-03-17T14:48:31.100 に答える