JOLT 转换 JSON 合并数组,但来自另一个字段的值
JOLT transform JSON merge array, but values from another fields
我需要从 primary_keys 数组中提取值并将它们连接成一个字符串。但是我在提取值时遇到了问题。
简化输入json:
{
"primary_keys": [
"ITEM",
"LOC",
"COMP_ID"
],
"ITEM": "ID158",
"LOC": 41,
"COMP_ID": "BPF",
"VALUE": 0.78
}
预期输出:
{
"PK": "ID158|41|BPF",
"ITEM": "ID158",
"LOC": 41,
"COMP_ID": "BPF",
"VALUE": 0.78
}
primary_keys 数组的内容可能因流文件而异。我感谢任何意见。谢谢!
你可以使用modify-overwrite-beta转换和join函数在派生数组(PK
)后通过使用 shift 转换,例如
,primary_keys
数组的每个成员各自的值
[
{
"operation": "shift",
"spec": {
"*": "&",
"primary_keys": {
"*": {
"*": { "$": "PK.@(4,&)" }
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "&",
"PK": {
"*": {
"$": "&2"
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"PK": "=join('|',@(1,&))"
}
}
]
我需要从 primary_keys 数组中提取值并将它们连接成一个字符串。但是我在提取值时遇到了问题。
简化输入json:
{
"primary_keys": [
"ITEM",
"LOC",
"COMP_ID"
],
"ITEM": "ID158",
"LOC": 41,
"COMP_ID": "BPF",
"VALUE": 0.78
}
预期输出:
{
"PK": "ID158|41|BPF",
"ITEM": "ID158",
"LOC": 41,
"COMP_ID": "BPF",
"VALUE": 0.78
}
primary_keys 数组的内容可能因流文件而异。我感谢任何意见。谢谢!
你可以使用modify-overwrite-beta转换和join函数在派生数组(PK
)后通过使用 shift 转换,例如
primary_keys
数组的每个成员各自的值
[
{
"operation": "shift",
"spec": {
"*": "&",
"primary_keys": {
"*": {
"*": { "$": "PK.@(4,&)" }
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "&",
"PK": {
"*": {
"$": "&2"
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"PK": "=join('|',@(1,&))"
}
}
]