Talendコンポーネント活用（１）Jsonファイル入力

#**Jsonファイルからの入力処理**
色々な言語でサポートされているJSONファイルですが、Talendでも標準コンポーネントでサポートされています。
さらにメタデータ定義を使用することにより、より簡易にJsonファイルを扱うことができます。
#**入力するJsonファイル**
今回入力するJsonファイルでは文字列、数値、真偽値を設定しています。
![Input_Sample.json.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/95f4da2c-13d8-652d-9402-30cff0519c2f.jpeg)

#**Json入力ファイルのメタデータ定義作成**
まず、リポジトリ→メタデータ→File Jsonの上で右クリックしJSONの作成をクリックします。
![メタデータ_JSON作成.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/2695ee2b-db80-250c-c5bd-f9e5dffd6145.jpeg)

Step1では名前（必須）、目的、説明を入力します。
![Input_Sample_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/8814fcd8-b47d-90a3-8ef2-3e87863ad478.jpeg)

Step2ではInput Jsonを選択します。
![Input_Sample_2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/a5293e3d-e8e4-b4f4-e3e9-5063df605713.jpeg)

Step3では入力するJsonファイルを指定します。
![Input_Sample_3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/11e53a56-2f85-3a29-1570-b498293a2924.jpeg)

参照ボタンをクリックして入力するJsonファイルを指定します。
読み込んだJsonファイルに誤りがある場合はエラーになりますので、Jsonファイルを再確認してください。
Jsonファイルが正常に読み込まれるとSchema Viewerに定義内容が表示されますので、Nextボタンをクリックします。
![Input_Sample_4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/c858e5dc-4d5e-a696-ee66-3ce1528199d4.jpeg)

Step4では入力する項目を定義します。
![Input_Sample_5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/5ffd7765-d959-f911-a1e8-5f79d4846dda.jpeg)

Path loop expressionには絶対JsonPathまたはXPath式を入力します。
Source SchemaのUserListをドラッグしてPath loop expressionにドロップし、UserListを絶対JsonPathとして定義します。
![Input_Sample_6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/72293a48-8504-b813-768a-50371c9c67a3.jpeg)

続いて取得する項目を定義します。
Source Schemaのname、age、prefectures、activeを４つを選択してドラッグし、Fields to extractへドロップします。
![Input_Sample_7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/2f89505f-147f-90b3-ab48-2126a4043079.jpeg)

定義完了後にRefresh Previewを押下することにより、Jsonファイルからの入力プレビューを確認できます。
プレビューが確認できましたらNextをクリックします。
![Input_Sample_8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/187a7803-2a17-ded4-0c10-7226e7828755.jpeg)

Step5では各項目の定義内容を設定します。
ここで注意すべきことがあり、項目のタイプがStringの場合には読み取ったJsonファイル内での最大値が適用されていますので、読み取ったファイルの内容より長いデータが見込まれる場合は長さを訂正します。
今回のStringは長さを256に変更しました。
![Input_Sample_9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/3d7caaf1-f1b2-5052-3cdd-15ef6cb064c9.jpeg)

Step5の定義が完了しましたらFinishボタンをクリックしてメタデータ定義を完了します。

#**tFileInputJSONコンポーネントの設定**
ジョブにtFileInputJSONを配置すると、コンポーネントの初期設定は下図のようになっています。
![Job1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/890e9009-3521-c99c-2531-cbb62234ccaf.jpeg)

プロパティタイプを組み込みからリポジトリに変更して、右端の参照ボタンをクリックします。
![Job2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/a3caf24d-469b-bea1-5d3c-871eb0bfea45.jpeg)

リポジトリの内容が表示されますので、選択可能なメタデータの一覧から作成した定義を選択してOKボタンをクリックします。
![Job3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/14b791c7-c5f9-038b-268d-35ffa8708853.jpeg)

メタデータで定義されている内容がコンポーネントに反映されます。
これでtFileInputJSONの設定は完了です。
![Job4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/31df94a3-5f2d-6ccc-abd8-cb4db6cebfed.jpeg)

今回はJsonから読み込んだ内容をそのままCSVに出力してみます。
![Job5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/07d4238f-4b43-218f-c856-fe48da644d87.jpeg)

#**実行後の出力結果**
![JSON_Input_Sample.csv.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/cbc920df-0b01-0675-e30a-76ea9a2c1e00.jpeg)

#**まとめ**
今回はメタデータを活用して簡易にJsonから入力できる方法を紹介しました。
次回は同様の手法でJsonファイルへの出力について紹介します。