Skip to main content

JSON Parse tool 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_NameJSON_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_Nameは、JSONオブジェクト(キー:値のペア)の「キー」です。ドットは、キーと任意の階層カテゴリを区切ります。

JSON_ValueString

JSONオブジェクトの対応する文字列「値」(key:値のペア)。値が文字列でない場合、[Null]と表示されます。

JSON_ValueInt

JSONオブジェクトの対応する整数「値:(key:値のペア)。値が整数でない場合、[Null]と表示されます。

JSON_ValueFloat

JSONオブジェクトの対応するfloat値(key:値のペア)。値が浮動小数でない場合、[Null]と表示されます。

JSON_ValueBool

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