配置映射源
在映射中,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"
}
}
]
}