# tHTTPClient: JSON配列から特定のデータを取得するための設定

この記事では、 [Extract a sub-part of the response] (レスポンスのサブ部分を抽出)フィールド、および[Output key/value pairs] (出力キー/値のペア)オプションと該当する出力を使い、JSON配列から特定のデータを取得できる設定の組み合わせを示します。この記事では、データを取得して表示するために次のジョブを使います。[Extract a sub-part] (サブ部分を抽出)フィールドで指定されているエレメントのサブエレメントが取得されます。サブエレメントが配列を形成する場合、コンポーネントは配列エレメントごとに出力レコードを1つ生成します。

![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/thttpclient-schema-and-output-1.png)

クエリーレスポンスペイロードでの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},
    ]
  }
]
```

次の図は、tHTTPClient コンポーネントの基本設定を表したものです。 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/thttpclient-schema-and-output-e.png)

* ルートエレメントの下にあるエレメントをすべて取得する。

  * 設定
    | 設定項目 | 設定 |
    | --- | --- |
    | スキーマカラム | <ul> <li><span>name</span>、String型</li> <li><span>age</span>、Int型</li> <li><span>address</span>、String型</li> </ul> |
    | [Response body format] (レスポンスボディ形式) | JSON |
    | [Extract a sub-part of the response] (レスポンスのサブ部分を抽出)フィールド | 空、. (ドット)、.rootのいずれか<br><br>この設定は、JSON配列のルートエレメントをポイントします。 |
  * 出力 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/thttpclient-schema-and-output-a.png)

* ルートエレメントの下にあるサブエレメントを取得する。

  * 設定
    | 設定項目 | 設定 |
    | --- | --- |
    | スキーマカラム | <ul> <li><span>name</span>、String型</li> <li><span>age</span>、Int型</li> <li><span>address</span>、String型</li> </ul> |
    | [Response body format] (レスポンスボディ形式) | JSON |
    | [Extract a sub-part of the response] (レスポンスのサブ部分を抽出)フィールド | .root[1]<br><br>この設定は、JSON配列のルートエレメントの下にある2番目のエレメントをポイントします。配列エレメントのインデックスは0から始まることに注意してください。 |
  * 出力 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/thttpclient-schema-and-output-b.png)

* Emmaの自動車に関する情報を検索する。

  * 設定
    | 設定項目 | 設定 |
    | --- | --- |
    | スキーマカラム | <ul> <li><span>brand</span>、String型</li> <li><span>model</span>、String型</li> <li><span>km</span>、Int型</li> </ul> |
    | [Response body format] (レスポンスボディ形式) | JSON |
    | [Extract a sub-part of the response] (レスポンスのサブ部分を抽出)フィールド | .root[1].cars<br><br>この設定は、Emmaのcarsエレメント(ルートエレメントの下にある2番目のエレメント)をポイントします。 |
  * 出力 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/thttpclient-schema-and-output-c.png)

* kmエレメントの値が40000より大きいEmmaの自動車に関する情報を検索する。

  * 設定
    | 設定項目 | 設定 |
    | --- | --- |
    | スキーマカラム | <ul> <li><span>brand</span>、String型</li> <li><span>model</span>、String型</li> <li><span>km</span>、Int型</li> </ul> |
    | [Response body format] (レスポンスボディ形式) | JSON |
    | [Extract a sub-part of the response] (レスポンスのサブ部分を抽出)フィールド | .root[1].cars{.km&gt;40000}<br><br>この設定は、kmエレメントの値が40000より大きいEmmaの*cars*エレメントをポイントします。 |
  * 出力 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/thttpclient-schema-and-output-d.png)

* キー/値のペアを使ってデータを取得する。

  [Extract a sub-part] (サブ部分を抽出)フィールドを使ってメインデータが抽出された後は、特定のエレメントの値を抽出してフラットレコードを作成することもできます。そのためには、[Output key/value pairs] (出力キー/値のペア)オプションを選択し、名前/値のペアをテーブルに追加します。名前/値のペアの場合、nameはスキーマのカラム名で、valueはレスポンスのエレメントをポイントする式です。この式には、コネクターで設定されているHTTPクエリーのレスポンスから値を取得できるよう、DSSLセレクターを含めることができます。次の例では、[Extract a sub-part of the reponse] (レスポンスのサブ部分を抽出)が.(ドット)という値が保持され、PeterとEmmaという2つのレコードがループされます。

  * 設定
    | 設定項目 | 設定 |
    | --- | --- |
    | スキーマカラム | <ul> <li><span>name</span>、String型</li> <li><span>age</span>、Int型</li> <li><span>address1</span>、String型</li> <li><span>address2</span>、String型</li> <li><span>first_car_brand</span>、String型</li> </ul> |
    | [Response body format] (レスポンスボディ形式) | JSON |
    | [Extract a sub-part of the response] (レスポンスのサブ部分を抽出)フィールド | . (ドット)<br><br>この設定は、kmエレメントの値が40000より大きいEmmaの*cars*エレメントをポイントします。 |
    | [Output key/value pairs] (出力キー/値のペア) | 下の図のように名前/値のペアと共に選択されます。 |

    ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/thttpclient-schema-and-output-f.png)
  * 出力 ![](https://help.qlik.com/talend/ja-JP/components/8.0/Resources/images/thttpclient-schema-and-output-g.png)