メイン コンテンツをスキップする 補完的コンテンツへスキップ

入力で目的のエレメントを使用

Availability-noteBeta
異なるセットの子を持つ可能性があるエレメントが含まれている入力ファイルをマッピングします。

始める前に

  • 入力と出力のストラクチャーが作成済みであること。ストラクチャーの作成には下のJSONサンプルを使用できます。

このタスクについて

この例では、自転車とスクーターの販売情報が含まれている入力JSONファイルがあるとします。このファイルにあるdetailsエレメントは、アイテムのタイプによって異なる子エレメントを持つ可能性があります。項目が自転車であれば、detailsエレメントにはbicycleseatderailleurという3つのエレメントが含まれます。項目がスクーターであれば、detailsにはscootersエレメントとmaxWeightエレメントが含まれます。

出力で、detailsエレメントをbicycleエレメントかscooterエレメントに置き換えたいとします。

入力データは次のようになります。
[
    {
        "sku": "AB4589",
        "price": 899.99,
        "details": {
            "bicycle": "MBIKE",
            "seat": "ergon",
            "derailleur": "shimano"
        }
    },
    {
        "sku": "DQ5678",
        "price": 899.99,
        "details": {
            "bicycle": "WBIKE",
            "seat": "selle italia",
            "derailleur": "sram"
        }
    },
    {
        "sku": "MF5612",
        "price": 399.99,
        "details": {
            "scooter": "ESCOOT",
            "maxWeight": 70
        }
    },
    {
        "sku": "MF5612",
        "price": 399.99,
        "details": {
            "scooter": "KSCOOT",
            "maxWeight": 50
        }
    }
]
出力ストラクチャーは次のようになります。
[
    {
        "sku": "",
        "price": 899.99,
        "bicycle": {
            "make": "",
            "seat": "",
            "derailleur": ""
        }
    },
    {
        "sku": "",
        "price": 399.99,
        "scooter": {
            "make": "",
            "maxWeight": 70
        }
    }
]

手順

  1. 作成した入力ストラクチャーを開き、detailsエレメントを展開します。
    detailsChoiceエレメントであることがわかります。ここにはSequenceエレメントが2つ含まれています。この2つは、detailsの子エレメントの可能性があるセットです。
  2. [Read Only] (読み取り専用)をクリックし、ドロップダウンリストで[Editable] (編集可能)を選択します。
  3. sequenceをクリックし、[Name] (名前)フィールドにあるsequencebicycleに置き換え、sequence_1scooterという名前に変更してストラクチャーを保存します。
  4. 新しいDSQLマップを作成して入力ストラクチャーと出力ストラクチャーを追加します。

    入力では、detailsエレメントにchoiceというラベルが付けられ、2つの選択肢にインデックスが割り当てられます。このインデックスは、式内の特定の代替エレメントを参照するために使用できます。

  5. 次のエレメントをドラッグ&ドロップしてマッピングします。
    • skusku
    • priceprice
    • bicycle {@0}bicycle
    • bicyclebicycle.make
    • scooterscooter.make
    • maxWeightmaxWeight

タスクの結果

エレメントがマッピングされます。出力エレメントであるbicyclescooterをクリックすると、条件式が自動的に生成されたことがわかります。
たとえばIF (isPresent(details.@0))は、details入力エレメントが最初の選択肢と一致する場合のみbicycle出力エレメントを生成することを示します。この例では、[Test Run] (テスト実行)によって次の結果が返されます。
[
   {
      "sku":"AB4589",
      "price":899.99,
      "bicycle":{
         "make":"MBIKE",
         "seat":"ergon",
         "derailleur":"shimano"
      }
   },
   {
      "sku":"DQ5678",
      "price":899.99,
      "bicycle":{
         "make":"WBIKE",
         "seat":"selle italia",
         "derailleur":"sram"
      }
   },
   {
      "sku":"MF5612",
      "price":399.99,
      "scooter":{
         "make":"ESCOOT",
         "maxWeight":70
      }
   },
   {
      "sku":"MF5612",
      "price":399.99,
      "scooter":{
         "make":"KSCOOT",
         "maxWeight":50
      }
   }
]

bicycleエレメントとscooterエレメントから条件を取り除くと、それぞれの出力に両方のエレメントが含まれ、そのうちの1つは空になります。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。