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

HTTPクライアントを使ったデータの抽出方法に関する追加情報

レスポンス全体のペイロードではなく、レスポンスボディの特定の部分を返すようにHTTPクライアントコネクターを設定したい場合は、[Extract a sub-part of the response] (レスポンスのサブ部分を抽出)パラメーターと[Output key/value pair] (出力キー/値のペア)パラメーターを使用します。
次の例は、ユーザーの年齢、住所、所有自動車といったレコードが含まれているこのJSONファイルに基づいています。
[
  {
    "name": "Peter",
    "age": 40,
    "male": true,
    "addresses": {
       "city": "Nantes",
       "zip": "44000",
       "street": "bd prairie au duc"
    },
    "cars": [
       {"brand": "Ford", "model": "Transit", "km": 123456},
       {"brand": "Renault", "model": "Clio", "km": 87234}
    ]
  },
   {
    "name": "Emma",
    "age": 34,
    "male": true,
    "addresses": {
       "city": "Paris",
       "zip": "75000",
       "street": "bd Saint-Germain"
    },
    "cars": [
       {"brand": "Tesla", "model": "Model 3", "km": 63456},
       {"brand": "Ford", "model": "Mustang Mach-E", "km": 32543},
       {"brand": "Volkswagen", "model": "Golf 8", "km": 43876},
    ]
  }
]

[Extract a sub-part of the response] (レスポンスのサブ部分を抽出)

この設定はレスポンスのペイロード全体を処理し、 返したいサブエレメントを抽出します。セレクターが配列を指す場合、項目ごとに出力レコードを1つ生成します。

[Extract a sub-part of the response] (レスポンスのサブ部分を抽出)の値 結果

<empty>

または.

または.root

(この3つの値は同じ結果を返します)

レスポンスペイロードを返します。この例では、PeterとEmmaの完全レコードが返されます。

.root[1]

ドキュメントが配列([で開始され、]で終了)で、そこから項目を1つだけ抽出したい場合は、.rootを使えばインデックスを定義できます。確かに.[1][1]は有効ではありませんが、.root[1]はドキュメントの2番目のエレメント(インデックスは0から開始)を抽出します。

2番目のレスポンスペイロードを返します。この例では、Emmaの完全レコードが返されます。

.root[1].cars

部分配列を選択してループさせることができます。

2番目のレスポンスペイロードの一部を返します。この例では、Emmaが所有する車が含まれているレコードが返されます。

.root[1].cars{.km > 40000}

返されたエレメントをフィルタリングできます。

2番目のレスポンスペイロードの一部を返します。この例では、Emmaが所有し、走行距離が40,000kmを超える車が含まれているレコードが返されます。

[Output key/value pair] (出力キー/値のペア)

[Extract a sub-part] (サブ部分を抽出)パラメーターを使ってメインデータが抽出されたら、値をいくつか抽出してフラットレコードを作成することもできます。

これを行うには、[Output key/value pairs] (出力キー/値のペア)を有効にし、[Name] (名前) / [Value] (値)エントリーを追加します。[Name] (名前)は出力レコードのフィールド名となり、[Value] (値)にはコネクターに設定されたHTTPクエリーのレスポンスから値を取得するためのDSSLセレクターが含まれます。

この例では、[Extract a sub-part of the response value] (レスポンスのサブ部分を抽出)値が . なので、PeterとEmmaという2つのレコードがループされます。

名前 / 値 結果
  • name / {.response.name}

    名前を取得できます

  • age / {.response.age}

    年齢を取得できます

  • address1 / {.response.addresses.street}

    address1フィールドにあるaddressのstreet属性を設定できます

  • address2 / {.response.addresses.zip} {.response.addresses.city}

    addressサブオブジェクトのzip属性とcity属性をaddress2フィールドに連結できます

  • first_car_brand / {.response.cars[0].brand}

    car配列の最初の項目のbrand 属性を抽出できます

[Name/Value] (名前/値)エントリーに含まれているペイロードからデータを抽出し、カラムに配置します。この例では、PeterとEmmaの名前、年齢、住所、最初の車のブランドが含まれているレコードが抽出されます。

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

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