マッピングソースの設定
マッピングでは、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"
}
}
マッピングの宛先の設定
マッピングにおいて、destination
は source
から抽出された値が挿入される場所を表します。
ルートレベルのフィールド
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"
}
}