コンポーネントを設定
手順
-
tFileInputJSONをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
-
[Edit schema] (スキーマを編集)をクリックして、スキーマエディターを開きます。
[+]ボタンをクリックし、String型のカラムを1つ(friends)を追加します。[OK]をクリックしてエディターを閉じます。
-
[...]ボタンをクリックして、JSONファイル(このケースではfacebook.json)を参照します。
{ "user": { "id": "9999912398", "name": "Kelly Clarkson", "friends": [ { "name": "Tom Cruise", "id": "55555555555555", "likes": { "data": [ { "category": "Movie", "name": "The Shawshank Redemption", "id": "103636093053996", "created_time": "2012-11-20T15:52:07+0000" }, { "category": "Community", "name": "Positiveretribution", "id": "471389562899413", "created_time": "2012-12-16T21:13:26+0000" } ] } }, { "name": "Tom Hanks", "id": "88888888888888" "likes": { "data": [ { "category": "Journalist", "name": "Janelle Wang", "id": "136009823148851", "created_time": "2013-01-01T08:22:17+0000" }, { "category": "Tv show", "name": "Now With Alex Wagner", "id": "305948749433410", "created_time": "2012-11-20T06:14:10+0000" } ] } } ] } }
-
[Read By Xpath] (XPathで読み取る)チェックボックスをオフにします。
[Mapping] (マッピング)テーブルで、[friends] (フレンド)カラムの横にあるJSONPathクエリー"$ .user.friends [*]"を入力して、ソースファイルから[friends] (フレンド)ノード全体を取得します。
-
tExtractJSONFieldsをダブルクリックして[Basic settings] (基本設定)ビューを表示します。
-
[Edit schema] (スキーマを編集)をクリックして、スキーマエディターを開きます。
-
右パネルの[+]ボタンをクリックして、id、name、like_id、like_name、like_categoryの5つのカラムを追加します。これらのカラムは、関連するノードのデータをJSONフィールドfriendsに保持します。
[OK]をクリックしてエディターを閉じます。
-
ポップアップ[Propagate] (プロパゲート)ダイアログボックスで、[Yes] (はい)をクリックしてスキーマを後続のコンポーネントにプロパゲートします。
- [Loop XPath query] (ループXPathクエリー)フィールドに、"/likes/data"を入力します。
- [Mapping] (マッピング)エリアで、[XPath query] (XPathクエリー)カラムでJSONノードのクエリーを入力します。これらのノードのデータは抽出され、出力スキーマで定義された対応するカラムに渡されます。
- 具体的には、カラムidには"../../id" ("/friends/id"ノードのクエリー)、カラムnameには"../../name" ("/friends/name"ノードのクエリー)、カラムlike_idには"id"、カラムlike_nameには"name"、カラムlike_categoryには"category"のXPathクエリーを定義します。
-
tLogRowをダブルクリックして[Basic settings] (基本設定)ビュー表示します。
- [Table (print values in cells of a table)] (テーブル(テーブルのセルの出力値))を選択して、結果を読みやすくします。