# 階層出力ストラクチャーエディター

フラットマッピングから階層マッピングへの変換機能によって、階層出力ストラクチャーを定義できます。

以下のテーブルの例では、[フラットストラクチャーから階層マップストラクチャーを作成](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/8.0/creating-hierarchical-map-from-flat-structure)で提供されたCSVサンプルを入力として使用します。

| 機能 | 説明 | 例 |
| --- | --- | --- |
| [Add GroupBy] (GroupByを追加) | 選択されたGroupByエレメントの値に基づいて、子エレメントをグループの集合にまとめます。<br><br>選択されたエレメントが1つだけの場合は、そのエレメントに対応するすべての一意値が含まれている配列が作成されます。<br><br>エレメントが複数選択されている場合は、選択項目にある最初の子エレメントが自動的にGroupByエレメントとして使用されます。これは、子エレメントを右クリックして[Select as GroupBy element] (GroupByエレメントとして選択)をクリックすれば変更できます。 | <ul> <li><span>Gender</span>エレメントを選択して<span>[Add GroupBy] (GroupByを追加)</span>をクリックした場合、出力は次のようになります。<pre><code><pre><code><code>"Gender": [  "female",  "male"]</code></code></pre></code></pre> </li> <li><span>Gender</span>エレメントと<span>Name</span>エレメントを選択した場合、出力は次のようになります。<pre><code><pre><code><code>"Oscars": [  {    "Gender": "female",    "Name": "Jessica Tandy"  },  {    "Gender": "male",    "Name": "Daniel Day-Lewis"  }]</code></code></pre></code></pre> </li> </ul> |
| [Add Array] (配列を追加) | 入力rowエレメントが存在する場合はそのエレメントで、存在しない場合は入力rootエレメントでループするエレメントのコレクションを作成します。<br><br>選択されたエレメントが1つだけの場合は、そのエレメントの値が含まれているプリミティブ配列が作成されます。エレメントを複数選択した場合は、レコードの配列が作成されます。<br><br>GroupBy内のエレメントでこの機能が使われる場合は、グループを作成できます。 | <ul> <li><span>Movie</span>エレメントを選択して<span>[Add Array] (配列を追加)</span>をクリックした場合、配列は次のようになります。<pre><code><pre><code><code>"Movie": [  "Driving Miss Daisy",  "Misery",  "The Silence of the Lambs"]</code></code></pre></code></pre> </li> <li><span>Movie</span>エレメントと<span>Name</span>エレメントを選択した場合、配列は次のようになります。 <pre><code><pre><code><code>"Movies": [  {    "Name": "Jessica Tandy",    "Movie": "Driving Miss Daisy"  },  {    "Name": "Kathy Bates",    "Movie": "Misery"  }]</code></code></pre></code></pre> </li> </ul> |
| [Add Record] (レコードを追加) | 選択されたエレメントからレコードを作成します。 | MovieエレメントとYearエレメントを選択した場合、レコードは次のようになります。<br><br>```<br>"Movie_record": {<br>"Year": "1990",<br>"Movie": " Driving Miss Daisy"<br>}<br>``` |
| [Convert GroupBy/Array Item Type] (GroupBy/配列アイテムタイプを変換) | 配列またはグループの集合をプリミティブアイテムタイプからレコードアイテムタイプに(またはその逆に)変更します。<br><br>情報メモ注: このオプションは、レコードに単一のエレメントが含まれている場合にのみレコードアイテムで使用できます。 | Movieエレメントから配列を作成して[Convert GroupBy/Array Item Type] (GroupBy/配列アイテムタイプを変換)をクリックした場合、配列は次のようになります。<br><br>```<br>"Movie_array": [<br>{<br>"Movie": "Driving Miss Daisy"<br>},<br>{<br>"Movie": "Misery"<br>},<br>{<br>"Movie": "The Silence of the Lambs"<br>}<br>]<br>``` |
| [Convert to Array] (配列に変換) | グループの集合を配列に変換します。 | Gender別にグループ化されたGenderエレメントとNameエレメントが含まれているグループを配列に変換すると、次のようになります。<br><br>```<br>"Gender_array": [<br>{<br>"Gender": "female",<br>"Name": " Jessica Tandy"<br>},<br>{<br>"Gender": "female",<br>"Name": " Kathy Bates"<br>},<br>{<br>"Gender": "male",<br>"Name": " Daniel Day-Lewis"<br>},<br>{<br>"Gender": "male",<br>"Name": " Jeremy Irons"<br>}<br>]<br>``` |
| [Convert to GroupBy] (GroupByに変換) | 配列をグループに変換します。<br><br>デフォルトでは、配列の最初の子エレメントが自動的にGroupByエレメントとして選択されます。これは、子エレメントを右クリックして[Select as GroupBy element] (GroupByエレメントとして選択)をクリックすれば変更できます。<br><br>また、rootエレメントをグループの集合に変換することも可能です。 | rootエレメントをグループに変換し、GroupByエレメントとしてYearを選択した場合、出力は次のようになります。<br><br>```<br>[{<br>"row": [<br>{<br>"Index": "1",<br>"Gender": "female",<br>"Year": "1990",<br>"Age": "80",<br>"Name": " Jessica Tandy",<br>"Movie": " Driving Miss Daisy"<br>},<br>{<br>"Index": "28",<br>"Gender": "male",<br>"Year": "1990",<br>"Age": "32",<br>"Name": " Daniel Day-Lewis",<br>"Movie": " My Left Foot"<br>}<br>]<br>}]<br>``` |

情報メモヒント: ドラッグ＆ドロップでエレメントを移動させたり、コピー＆ペーストで出力ストラクチャー内のエレメントを複製したりできます。問題が発生しないよう、エレメントを追加したり複製したりする時は、エレメント名を必ず一意にしてください。