JSONパースツール
ツールごとに学習
JSONパースには、「ツールごとに学習」が用意されています。サンプルワークフロー を参照して、このサンプルを含むさまざまなサンプルをAlteryx Designerで直接利用する方法をご確認ください。
JSONパースを使用すると、ダウンストリーム処理のためにJavaScript Object Notation (JSON)テキストをテーブルスキーマに分離できます。出力をJSONビルドツールにフィードして、使用可能なJSON形式に再構築できます。
ツールの設定
JSONフィールド: JSONテキストを保持するフィールドを選択します。フィールドは、有効なJSON形式で、単一のセルにレコード1つのすべてのテキストが含まれている必要があります。次の例を参照してください。
{ "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
出力に含める: 選択した列がツールから出力されるデータストリームに含まれます。
JSONの解析方法を選択します。以下のようなオプションがあります。
単一の文字列フィールドに値を出力する
データ型固有のフィールドに値を出力する
JSONフィールドのアンネスト: このオプションはAMPの場合のみ使用できます。
配列のフラット化: このオプションはAMPの場合のみ使用できます。
上記の各オプションの詳細や例については、以下のセクションを参照してください。
このオプションは、JSON_Name
とJSON_ValueString
の2つのフィールドを出力します。上記の入力例を使用すると、以下のデータがツールから出力されます。
例
JSON入力
{ "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
JSONパースツール出力
JSON_Name | JSON_ValueString |
---|---|
firstName | John |
lastName | Smith |
age | 25 |
address.streetAddress | 21 2nd Street |
address.city | New York |
address.state | NY |
address.postalCode | 10021 |
phoneNumber.0.type | home |
phoneNumber.0.number | 212-555-1234 |
phoneNumber.1.type | fax |
phoneNumber.1.number | 646-555-4567 |
このオプションは、次の5つのフィールドを出力します。
フィールド名 | 説明 |
---|---|
| JSON_Nameは、JSONオブジェクト(キー:値のペア)の「キー」です。ドットは、キーと任意の階層カテゴリを区切ります。 |
| JSONオブジェクトの対応する文字列「値」(key:値のペア)。値が文字列でない場合、[Null]と表示されます。 |
| JSONオブジェクトの対応する整数「値:(key:値のペア)。値が整数でない場合、[Null]と表示されます。 |
| JSONオブジェクトの対応するfloat値(key:値のペア)。値が浮動小数でない場合、[Null]と表示されます。 |
| JSONオブジェクトの対応するbool「値」(key:値のペア)。値がboolでなければ、[NULL]と表示されます。 |
例
JSON入力
{ "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
JSONパースツール出力
JSON_Name | JSON_ValueString | JSON_ValueInt | JSON_ValueFloat | JSON_ValueBool |
---|---|---|---|---|
firstName | John | [Null] | [Null] | [Null] |
lastName | Smith | [Null] | [Null] | [Null] |
age | [Null] | 25 | [Null] | [Null] |
address.streetAddress | 21 2nd Street | [Null] | [Null] | [Null] |
address.city | New York | [Null] | [Null] | [Null] |
address.state | NY | [Null] | [Null] | [Null] |
address.postalCode | 10021 | [Null] | [Null] | [Null] |
phoneNumber.0.type | home | [Null] | [Null] | [Null] |
phoneNumber.0.number | 212-555-1234 | [Null] | [Null] | [Null] |
phoneNumber.1.type | fax | [Null] | [Null] | [Null] |
phoneNumber.1.number | 646-555-4567 | [Null] | [Null] | [Null] |
このオプションでは、JSONオブジェクトを列にアンネストできます。JSONオブジェクトが1レベルだけ深くなります。
警告
JSONフィールドのアンネストはAMPのみで利用可能です。
例
JSON入力
次のような値を持つ入力列「hours」を例に考えます。
{ "Tuesday": {"close": "17:00", "open": "08:00"}, "Friday": {"close": "17:00", "open": "08:00"}, "Monday": {"close": "17:00", "open": "08:00"}, "Wednesday": {"close": "17:00", "open": "08:00"}, "Thursday": {"close": "17:00", "open": "08:00"} }
JSONパースツール出力
上記の「hours」列をアンネストした場合の出力を以下に示します。
hours.Tuesday | hours.Friday | hours.Monday | hours.Wednesday | hours.Thursday |
---|---|---|---|---|
{"close":"17:00","open":"08:00"} | {"close":"17:00","open":"08:00"} | {"close":"17:00","open":"08:00"} | {"close":"17:00","open":"08:00"} | {"close":"17:00","open":"08:00"} |
「hours」列のアンネストで、「hours.Tuesday」、「hours.Friday」、「hours.Monday」などの列が出力されます。
「hours.Tuesday」にはまだ次のオブジェクトがあります: {"close": "17:00", "open": "08:00"}JSONパースツールを再度使用して、これをhours.Tuesday.closeとhours.Tuesday.openにさらにアンネストできます。
このオプションは、配列値だけがある列に適用できます。角括弧を削除するとJSON配列の列を展開できます。要素ごとにカンマで区切られた行が作成され、各行にIDが割り当てられます。
警告
配列のフラット化はAMPのみで利用可能です。
例
JSON入力
列名が「hours」で列の値が配列の、角括弧で囲まれた配列入力を例に考えます。
[ {"day": "Monday", "open": "08:00", "close": "17:00"}, {"day": "Tuesday", "open": "08:00", "close": "17:00"}, {"day": "Wednesday", "open": "08:00", "close": "17:00"}, {"day": "Thursday", "open": "08:00", "close": "17:00"}, {"day": "Friday", "open": "08:00", "close": "17:00"} ]
JSONパースツール出力
hours_flatten | hours_idx |
---|---|
{"day":"Monday","open":"08:00","close":"17:00"} | 1 |
{"day":"Tuesday","open":"08:00","close":"17:00"} | 2 |
{"day":"Wednesday","open":"08:00","close":"17:00"} | 3 |
{"day":"Thursday","open":"08:00","close":"17:00"} | 4 |
{"day":"Friday","open":"08:00","close":"17:00"} | 5 |