#階層化Jsonファイルの入力処理
前回までは1階層のJsonファイルを入出力してみましたが、今回は2階層のJsonファイルの入力をtFileInputJsonコンポーネントとtExtraJsonFieldsコンポーネントで行う処理を紹介します。
#入力するJsonファイル
今回入力するJsonファイルは2階層の販売データです。
#tFileInputJsonの設定
1階層目のSalesDataをtFileInpuJsonで入力するように設定します。
スキーマの編集からSalesDataを設定します。
ループJSONクエリーには"$"を設定し、MappingのSalesDataのJSONクエリーには"SalesData[*]"を設定します。
#tExtraJsonFieldsの配置
ジョブにtExtraJsonFieldを追加して下図のようにtFileInputJsonと接続します。
#tExtraJsonFiledsの設定
スキーマの編集から展開する各スキーマを設定します。
Read ByはXpathに変更し、ループXpathクエリーには2階層目の"/details/"を設定します。
各スキーマのXpathクエリーは以下のように設定します。
Store→"Store"
Date→"Date"
Num→"Num"
【要チェックポイント】
detailsの1階層上にあるtypeとnameを読み込む場合には、先頭に"../"を付加することにより読み取ることができます。
type→"../type"
name→"../name"
これで2階層のJsonファイル読み込みの設定が完了です。
ジョブの最後にtFileOutputDelimitedを追加してCSVに出力して実行します。
実行するとrow1では1行ですが、row2では展開されて12行で出力されています。
#実行後の出力結果
CSVには12行の販売データとして出力することができました。
#まとめ
tExtraJsonFieldsを使用することにより2階層のJsonファイルを読み込むことができました。
次回は複数回層のJsonファイル出力を紹介します。