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

キー/値ペアを使用

Availability-noteBeta
キー/値ペアをマッピングできるようストラクチャーをアップデートします。

始める前に

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

このタスクについて

この例では、自転車とスクーターに関する情報が含まれているitemsオブジェクトを持つJSONファイルをがあるとします。それぞれの項目はその項目名をキーとするオブジェクトで、値はその項目の説明と価格を含んでいるオブジェクトです。目標は、項目の配列で出力を作成することです。

入力データは次のようになります。
{
    "items": {
        "MBIKE": {
            "description": "27.5 inch electric mountain bike",
            "price": "899.99"
        },
        "EBIKE": {
            "description": "Electric hybrid bike",
            "price": "999.99"
        },
        "WBIKE": {
            "description": "Women's road bike",
            "price": "299.99"
        },
        "ESCOOT": {
            "description": "Camou electric scooter",
            "price": "749.0"
        },
        "EVSCOOT": {
            "description": "Folding electric velocity+ scooter",
            "price": "599.99"
        },
        "KSCOOT": {
            "description": "24 volt kid scooter",
            "price": "299.99"
        }
    }
}
出力ストラクチャーは次のようになります。
{
    "items": [
        {
            "make": "",
            "description": "",
            "price": ""
        }
    ]
}

手順

  1. 作成した入力ストラクチャーを開き、itemsエレメントを展開します。
    itemsエレメントには、JSONファイルに存在する項目のタイプごとに子が1つ含まれています。この場合、項目が増えるとストラクチャーが使えなくなってしまうので、ストラクチャーをアップデートして汎用性を高める必要があります。
  2. [Read Only] (読み取り専用)をクリックし、ドロップダウンリストで[Editable] (編集可能)を選択します。
  3. itemsをクリックし、[Group Type] (グループタイプ)ドロップダウンリストで[Map] (マップ)を選択します。
    R2023-11以降のStudio Talendマンスリーアップデートをインストール済みである場合は、表示されるダイアログボックスに、エレメントタイプを[Map] (マップ)に変更するとエレメントの子エレメントが置き換えられることが示されます。[Yes] (はい)をクリックすると、keyエレメントとvalueエレメントが含まれているentryループが自動的に作成されます。

    Studio Talendの古いマンスリーアップデートを使用している場合は、itemsエレメントを手動で削除し、keyエレメントとvalueエレメントを使ってentryループを作成する必要があります。

  4. valueを右クリックし、descriptionpriceという新しいエレメントを作成してストラクチャーを保存します。
    最終的なストラクチャーは次のようになります。

    ストラクチャーを閉じて開き直すと、[Document] (ドキュメント)タブで強調表示されている項目を確認できます。

  5. 新しいDSQLマップを作成して入力ストラクチャーと出力ストラクチャーを追加します。
  6. 次のエレメントをドラッグ&ドロップしてマッピングします。
    • keymake
    • descriptiondescription
    • priceprice
  7. itemsをクリックし、既存の式の下に次の行を入力して、出力データをフィルテリングするようにします。
    WHERE value.price <= items['ESCOOT'].price

    この式は、マップがESCOOT入力エレメントの価格以下の項目だけを返すことを示します。値が特定のキーで参照されていることがわかります。詳細は、TalendData Shaping Languageリファレンスガイドをご覧ください。

タスクの結果

マップが設定され、[Test Run] (テスト実行)機能を使った結果をチェックできるようになります。この例では、次の結果が返されます。
{
   "items":[
      {
         "make":"ESCOOT",
         "description":"Camou electric scooter",
         "price":"749.0"
      },
      {
         "make":"WBIKE",
         "description":"Women's road bike",
         "price":"299.99"
      },
      {
         "make":"KSCOOT",
         "description":"24 volt kid scooter",
         "price":"299.99"
      },
      {
         "make":"EVSCOOT",
         "description":"Folding electric velocity+ scooter",
         "price":"599.99"
      }
   ]
}
また、次のように逆の方法によってキー/値ペアで出力を作成することも可能です。

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

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