マッピングソースの設定

マッピングでは、source はフィールド、式、または静的な値にすることができます。指定されたソースタイプに基づいて、様々な方法で値を抽出できます。

列データのフィールド

CSV ファイルなど、列データのフィールドをマッピングする場合は、ソースタイプ ATTRIBUTE を使用します。フィールド名に . が含まれている場合は、\ を使用して値をエスケープします。このマッピング例を次に示します。

サンプル CSV ファイル:

Full.Name, Email
John Smith, js@example.com

サンプルマッピング

{
    "source": "Full.Name",
    "destination": "pi.name",
    "sourceType": "ATTRIBUTE"
}

変換済みデータ

{
    "pi": {
        "name": "John Smith"
    }
}

ネストされたデータのフィールド

JSON ファイルなど、ネストされたデータ内のフィールドをマッピングする場合は、ソースタイプ ATTRIBUTE を使用します。フィールド名に . が含まれている場合は、\ を使用して値をエスケープします。このマッピング例を次に示します。

サンプル JSON ファイル

{
    "customerInfo": {
        "name": "John Smith",
        "email": "js@example.com"
    }
}

サンプルマッピング

{
    "source": "customerInfo.name",
    "destination": "pi.name",
    "sourceType": "ATTRIBUTE"
}

変換済みデータ

{
    "pi": {
        "name": "John Smith"
    }
}

配列内のフィールド

配列内のフィールドをマッピングする場合は、インデックスを使用して特定の値を取得できます。これをおこなうには、ATTRIBUTE ソースタイプと、マッピングする値のインデックスを使用します。このマッピング例を次に示します。

サンプル JSON ファイル

{
    "customerInfo": {
        "emails": [
            {
                "name": "John Smith",
                "email": "js@example.com"
            },
            {
                "name": "Jane Smith",
                "email": "jane@example.com"
            }
        ]
    }
}

サンプルマッピング

{
    "source": "customerInfo.emails[0].email",
    "destination": "pi.email",
    "sourceType": "ATTRIBUTE"
}

変換済みデータ

{
    "pi": {
        "email": "js@example.com"
    }
}

配列から配列、またはオブジェクトからオブジェクト

ATTRIBUTE ソース型を使用して、ある配列から別の配列、またはあるオブジェクトを別のオブジェクトに直接マッピングすることもできます。このマッピング例を次に示します。

サンプル JSON ファイル

{
    "customerInfo": {
        "emails": [
            {
                "name": "John Smith",
                "email": "js@example.com"
            },
            {
                "name": "Jane Smith",
                "email": "jane@example.com"
            }
        ]
    }
}

サンプルマッピング

{
    "source": "customerInfo.emails",
    "destination": "pi.emailList",
    "sourceType": "ATTRIBUTE"
}

変換済みデータ

{
    "pi": {
        "emailList": [
            {
                "name": "John Smith",
                "email": "js@example.com"
            },
            {
                "name": "Jane Smith",
                "email": "jane@example.com"
            }
        ]
    }
}

配列に対する反復操作

ATTRIBUTE ソース型を使用すると、配列を反復的にループし、ワイルドカードインデックス([*])を使用してターゲットスキーマにマッピングできます。このマッピング例を次に示します。

サンプル JSON ファイル

{
    "customerInfo": {
        "emails": [
            {
                "name": "John Smith",
                "email": "js@example.com"
            },
            {
                "name": "Jane Smith",
                "email": "jane@example.com"
            }
        ]
    }
}

サンプルマッピング

{
    "source": "customerInfo.emails[*].name",
    "destination": "pi[*].names",
    "sourceType": "ATTRIBUTE"
}

変換済みデータ

{
    "pi": [
        {
            "names": {
                "name": "John Smith"
            }
        },
        {
            "names": {
                "name": "Jane Smith"
            }
        }
    ]
}

定数値

定数または静的な値をマッピングする場合は、STATIC ソースタイプを使用します。STATIC ソースタイプを使用する場合、source は、destinationに割り当てる、ハードコーディングされた値を表します。このマッピング例を次に示します。

サンプル JSON ファイル

{
    "name": "John Smith",
    "email": "js@example.com"
}

サンプルマッピング

{
    "source": "CUSTOMER",
    "destination": "userType",
    "sourceType": "STATIC"
}

変換済みデータ

{
    "userType:": "CUSTOMER"
}

式をマッピングする場合は、ソースタイプ EXPRESSION を使用します。使用可能な関数のリストは、マッピング関数ガイドに記載されています。EXPRESSION ソースタイプを使用する場合、source は解決する関数を表します。このマッピング例を次に示します。

サンプル JSON ファイル

{
    "firstName": "John",
    "lastName": "Smith",
    "email": "js@example.com"
}

サンプルマッピング

{
    "source": "concat(upper(lastName), upper(firstName), now())",
    "destination": "pi.created",
    "sourceType": "EXPRESSION"
}

変換済みデータ

{
    "pi": {
        "created": "SMITHJOHNFri Sep 25 15:17:31 PDT 2020"
    }
}

マッピングの宛先の設定

マッピングにおいて、destinationsource から抽出された値が挿入される場所を表します。

ルートレベルのフィールド

source 値を変換後のデータのルートレベルにマッピングする場合は、次の例に従います。

サンプル JSON ファイル

{
    "customerInfo": {
        "name": "John Smith",
        "email": "js@example.com"
    }
}

サンプルマッピング

{
    "source": "customerInfo.name",
    "destination": "name",
    "sourceType": "ATTRIBUTE"
}

変換済みデータ

{
    "name": "John Smith"
}

ネストされたフィールド

source 値を、変換後のデータでネストされたフィールドにマッピングする場合は、次の例に従います。

サンプル JSON ファイル

{
    "name": "John Smith",
    "email": "js@example.com"
}

サンプルマッピング

{
    "source": "name",
    "destination": "pi.name",
    "sourceType": "ATTRIBUTE"
}

変換済みデータ

{
    "pi": {
        "name": "John Smith"
    }
}