CSVパーサーを使ってCSVテキストをJSONオブジェクトにパースする
フローでは、イベントやアクションは、ファイルやその他のコンテンツからカンマ区切り値(CSV)を返すことができます。 フローに CSV パーサー・ノードを追加して、CSV データ文字列を JSON オブジェクトに変換します。 その後、JSONオブジェクトを使用して、CSVデータをフロー内の後続のアクションにマッピングすることができます。
最初に考慮すべきこと
イベントまたはアクションが返すCSVデータはプレーンテキストでなければならず、表形式の1つまたは複数のデータレコードを含むことができる。 データ・フィールドの区切り文字として使用できるのは、カンマ(, )のみである。 そのため、フィールドの値にカンマが含まれる場合は、その値をダブルクォーテーション("" )で囲む必要があります。
CSVパーサーが生成するスキーマは、中括弧 {} で囲まれた、カンマで区切られたキーと値のペアの標準的なセットとしてフォーマットされます。 キーは文字列として定義され、その値は以下の有効なJSONデータ型のいずれかである:文字列、数値、オブジェクト、配列、ブール値、またはnull。 これらのキーが生成されると、後続のアクションで Insert a mapping
。
解析されるデータの定義と有効なJSONスキーマの生成
次の例は、Box Retrieve file アクションを使用して、内容を取得して解析したいCSVファイルの識別子を指定する、マルチノードフローのセクションを示しています。

CSV データを後続のアクションでマッピングできるようにするには、アクションの前に CSV パーサー・ノードを挿入し、CSV パーサー・ノードを使用して解析したいデータを定義し、有効な JSON スキーマを生成します。
CSV パーサー・ノードを挿入して設定するには、以下の手順を実行します。
- (+)アイコンをクリックし、 ツールボックスタブに移動し、 CSVパーサーをクリックします。
図2: ツールボックスタブからCSVパーサーを選択する 
- CSV入力フィールドを使用して、前のアクションまたはイベントのどのデータを解析するかを指定します。 利用可能な入力のリストに表示されているフィールドにマッピングすることができます( マッピングの挿入
をクリックしてアクセスできます)。 通常、このデータはCSVファイルの内容や、テキスト本文の中にある他のCSVコンテンツである。 次の例は、Box内のファイルの内容にデータをマッピングする方法を示している。図3: CSV入力フィールド 
- CSV Parsing Options and Data Schema ] セクションを展開し、[ Example CSV] フィールドを使用して、CSV コンテンツのサンプルを示すプレーン・テキスト・データを指定します。
次の例は、 IBM API Connect® ManagementサーバーからBoxにエクスポートされたCSVファイルのサンプルデータです。 CSVファイルには、Analyticsダッシュボードの1つに関連付けられたAPIイベント・データが含まれています。 この例では、GmailやSlackを使って、APIやアプリケーションに関する適切な分析情報を幹部に送信できるように、このデータを解析したい。
図4: CSVフィールドの例 
CSVコンテンツから1行または複数行を選択してコピーし、「 CSVの例」 フィールドに貼り付けることができます。 CSVコンテンツに、 App Connect が生成するJSONスキーマのキーとして定義したいカラムヘッダが含まれている場合は、必ずヘッダ行を選択に含めてください。 スキーマのCSV形式を分析するために使用されるのは、最初の行だけである。 サンプル CSV フィールドには最大 16,000 文字を入力できます。
- サンプル CSV に CSV ヘッダーが含まれている場合、 CSV データの最初の行がヘッダーであるチェックボックスを選択し、生成されるスキーマで列ヘッダーをキーとして解析する必要があることを示します。
図 5. CSVデータの1行目はヘッダーチェックボックス 
- サンプルCSVをJSONオブジェクトに変換するには、 Generate Schemaをクリックします。 結果は JSONスキーマ ・フィールドで見ることができる。

- CSVデータの最初の行がヘッダーである 」チェックボックスを選択した場合、定義された列のヘッダーは、後でマッピングできるキーとして解析されます。
- このチェックボックスを選択しなかった場合、
field1, field2, ..., fieldNというラベルが貼られた一般的な一連のキーが生成されて使用される。 必要に応じて、これらの汎用キーを上書きして代替のヘッダー文字列を指定することができる。
スキーマ生成ステップをバイパスして、有効なスキーマを JSONスキーマフィールドに直接入力することもできます。 プロパティのtype属性の値を更新することで、キーのデータ型を変更することもできます。 例えば、
"type": "string"(以下の例)を"type": "number"に変更することができます。... "properties": { "bytes_received": { <strong>"type": "string"</strong>, "minLength": 1 }, ...
解析されたデータの処理方法
CSVパーサー・ノードからの出力は配列です。 したがって、この出力をフロー内の後続ノードで使用するには、通常、CSVパーサー・ノードの後に For each ノードを追加して、配列を繰り返し処理する。 あるいは、JSONataを使って配列データを操作することもできる。