7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Talendコンポーネント活用(3)階層化JsonファイルをtExtraJsonFieldsで入力する

Posted at

#階層化Jsonファイルの入力処理
前回までは1階層のJsonファイルを入出力してみましたが、今回は2階層のJsonファイルの入力をtFileInputJsonコンポーネントとtExtraJsonFieldsコンポーネントで行う処理を紹介します。

#入力するJsonファイル
今回入力するJsonファイルは2階層の販売データです。
Input_Sample_Extra_2.jpg

#tFileInputJsonの設定
1階層目のSalesDataをtFileInpuJsonで入力するように設定します。
スキーマの編集からSalesDataを設定します。
Input_Sample_Extra_3.jpg

ループJSONクエリーには"$"を設定し、MappingのSalesDataのJSONクエリーには"SalesData[*]"を設定します。
Input_Sample_Extra_1.jpg

#tExtraJsonFieldsの配置
ジョブにtExtraJsonFieldを追加して下図のようにtFileInputJsonと接続します。
Input_Sample_Extra_4.jpg

#tExtraJsonFiledsの設定
スキーマの編集から展開する各スキーマを設定します。
Input_Sample_Extra_5.jpg

Read ByはXpathに変更し、ループXpathクエリーには2階層目の"/details/"を設定します。
Input_Sample_Extra_6.jpg

各スキーマのXpathクエリーは以下のように設定します。
Store→"Store"
Date→"Date"
Num→"Num"

【要チェックポイント】
detailsの1階層上にあるtypeとnameを読み込む場合には、先頭に"../"を付加することにより読み取ることができます。
type→"../type"
name→"../name"
Input_Sample_Extra_7.jpg

これで2階層のJsonファイル読み込みの設定が完了です。
ジョブの最後にtFileOutputDelimitedを追加してCSVに出力して実行します。
実行するとrow1では1行ですが、row2では展開されて12行で出力されています。
Input_Sample_Extra_8.jpg

#実行後の出力結果
CSVには12行の販売データとして出力することができました。
Input_Sample_Extra_9.jpg

#まとめ
tExtraJsonFieldsを使用することにより2階層のJsonファイルを読み込むことができました。
次回は複数回層のJsonファイル出力を紹介します。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?