在颠簸规范中应用正则表达式模式来查找属性是字母数字还是数字
Apply regex pattern in jolt specification to find attribute is alphanumeric or number
我有一个场景,我想根据数据值填充属性。
输入:
{
"PersonName":{
"FirstName":"03-03-1984",
"ID":"123567",
"Name":[
"Betty Lou",
"Tre Chernockxdev"
],
"LastName":"Tre Chernockxdev"
}
}
输出:
{
"Birth":{
"YearOfBirth":"1984"
},
"Employee":{
"LastName":"Tre Chernockxdev"
},
"Element":{
"Category":"Fixed"
}
}
因此,基于 ID
值,我想填充 Gender
属性。如果 ID
是数字,则用 Fixed
填充 Category
,或者如果 ID
是字母数字,则用 Floating
值填充类别。
颠簸规格:
[
{
"operation":"shift",
"spec":{
"PersonName":{
"FirstName":{
"*-*-*":{
"$(0,3)":"Birth.YearOfBirth"
}
},
"LastName":"Employee.LastName",
"ID":"Fixed|Floating"
}
}
}
]
我也检查了jolt string function,但找不到可用于检查数据类别的函数。我可以通过他们的方式找到 ID
值是否包含 number
或 alphanumeric
?或者我可以应用 regex pattern
来检查数据是否包含 number
或 alphanumeric
值?
您想实现类似 ternary operator 的目标,这很难实现但有可能实现:
[
{
"operation":"shift",
"spec":{
"PersonName":{
"*":"&"
}
}
},
{
"operation":"modify-overwrite-beta",
"spec":{
"ID":[
"=toInteger",
"Floating"
]
}
},
{
"operation":"shift",
"spec":{
"ID":{
"@":"ID",
"Floating":null,
"*":{
"#Fixed":"ID"
}
},
"*":"&"
}
},
{
"operation":"modify-overwrite-beta",
"spec":{
"ID":"=lastElement(@(1,ID))"
}
},
{
"operation":"shift",
"spec":{
"FirstName":{
"*-*-*":{
"$(0,3)":"Birth.YearOfBirth"
}
},
"LastName":"Employee.LastName",
"ID":"Element.Category"
}
}
]
另请参阅:
我有一个场景,我想根据数据值填充属性。
输入:
{
"PersonName":{
"FirstName":"03-03-1984",
"ID":"123567",
"Name":[
"Betty Lou",
"Tre Chernockxdev"
],
"LastName":"Tre Chernockxdev"
}
}
输出:
{
"Birth":{
"YearOfBirth":"1984"
},
"Employee":{
"LastName":"Tre Chernockxdev"
},
"Element":{
"Category":"Fixed"
}
}
因此,基于 ID
值,我想填充 Gender
属性。如果 ID
是数字,则用 Fixed
填充 Category
,或者如果 ID
是字母数字,则用 Floating
值填充类别。
颠簸规格:
[
{
"operation":"shift",
"spec":{
"PersonName":{
"FirstName":{
"*-*-*":{
"$(0,3)":"Birth.YearOfBirth"
}
},
"LastName":"Employee.LastName",
"ID":"Fixed|Floating"
}
}
}
]
我也检查了jolt string function,但找不到可用于检查数据类别的函数。我可以通过他们的方式找到 ID
值是否包含 number
或 alphanumeric
?或者我可以应用 regex pattern
来检查数据是否包含 number
或 alphanumeric
值?
您想实现类似 ternary operator 的目标,这很难实现但有可能实现:
[
{
"operation":"shift",
"spec":{
"PersonName":{
"*":"&"
}
}
},
{
"operation":"modify-overwrite-beta",
"spec":{
"ID":[
"=toInteger",
"Floating"
]
}
},
{
"operation":"shift",
"spec":{
"ID":{
"@":"ID",
"Floating":null,
"*":{
"#Fixed":"ID"
}
},
"*":"&"
}
},
{
"operation":"modify-overwrite-beta",
"spec":{
"ID":"=lastElement(@(1,ID))"
}
},
{
"operation":"shift",
"spec":{
"FirstName":{
"*-*-*":{
"$(0,3)":"Birth.YearOfBirth"
}
},
"LastName":"Employee.LastName",
"ID":"Element.Category"
}
}
]
另请参阅: