配置映射源

在映射中,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"
    }
}

特定数组索引处的字段

如果要将source值映射到转换数据数组中的特定索引,请遵循以下示例:

示例JSON文件

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

示例映射

{
    "source": "customerInfo.name",
    "destination": "piList[0]",
    "sourceType": "ATTRIBUTE"
}

转换的数据

{
    "piList": ["John Smith"]
}

迭代阵列运算

如果要循环遍历数组并将值映射到目标,可以使用通配符索引([*])。 下面显示了这方面的示例:

{
    "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"
            }
        }
    ]
}