JSONパースツール
ユーザーロール要件
ユーザーロール* | ツール/機能へのアクセス |
|---|---|
フルユーザー | ✓ |
ベーシックユーザー | X |
*Alteryx Oneプロフェッショナルエディションおよびエンタープライズエディションをご契約中で、Designerバージョン2025.1以降をお使いのお客様に適用されます。
JSONパースを使用すると、ダウンストリーム処理のためにJavaScript Object Notation (JSON)テキストをテーブルスキーマに分離できます。出力をJSONビルドツールにフィードして、使用可能なJSON形式に再構築できます。
ツールごとに学習
JSONパースには、「ツールごとに学習」が用意されています。サンプルワークフローをご覧いただき、Alteryx Designerからこのサンプルやその他の多くのサンプルに直接アクセスする方法をご確認ください。
ツールの設定
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 |
