Jolt 转换以使用 NiFi 将 json 内容放入字段中
Jolt transform to put the json content in a field using NiFi
我的JSON输入
[
{
"id": "1234",
"Status": "null",
"Expired": "null",
"First_Name": "null"
},
{
"id": "5678",
"Status": "null",
"Expired": "null",
"First_Name": "null"
}
]
我的 JOLT 规格
[
{
"operation": "shift",
"spec": {
"*": {
"id": "[&1].id"
}
}
},
{
"operation": "default",
"spec": {
"*": {
"Status": "null",
"Expired": "null",
"First_Name": "null"
}
}
}
]
输出:
[
{
"id": "1234",
"First_Name": "null",
"Expired": "null",
"Status": "null"
},
{
"id": "5678",
"First_Name": "null",
"Expired": "null",
"Status": "null"
}
]
预期输出:
{
"isInput": true,
"input": [
{
"id": "1234",
"First_Name": "null",
"Expired": "null",
"Status": "null"
},
{
"id": "5678",
"First_Name": "null",
"Expired": "null",
"Status": "null"
}
]
}
这可以使用 NiFi JoltTransform 完成吗JSON。就像将 json 内容放在“输入”字段中并添加另一个 isInput 键。
如果不是,我应该使用替换值
的 replaceText
{
"isInput": true,
"input": "${input}"
}
但是,我应该如何将 JoltTransform 的输出放入 ${input} 字段
您可以将以下两个规格添加到您的链中:
{
"operation": "shift",
"spec": {
"isInput": "isInput",
"*": "input[]"
}
},
{
"operation": "default",
"spec": {
"isInput": "true"
}
}
但仅使用此链规范更短:
[
{
"operation": "shift",
"spec": {
"*": {
"id": "input[&1].id"
}
}
},
{
"operation": "default",
"spec": {
"input[]": {
"*": {
"Status": "null",
"Expired": "null",
"First_Name": "null"
}
},
"isInput": "true"
}
}
]
shift step一步就够了,比如
[
{
"operation": "shift",
"spec": {
"#true": "isInput",
"@": "input"
}
}
]
其中 @
签名键将复制当前级别的所有内容。
我的JSON输入
[
{
"id": "1234",
"Status": "null",
"Expired": "null",
"First_Name": "null"
},
{
"id": "5678",
"Status": "null",
"Expired": "null",
"First_Name": "null"
}
]
我的 JOLT 规格
[
{
"operation": "shift",
"spec": {
"*": {
"id": "[&1].id"
}
}
},
{
"operation": "default",
"spec": {
"*": {
"Status": "null",
"Expired": "null",
"First_Name": "null"
}
}
}
]
输出:
[
{
"id": "1234",
"First_Name": "null",
"Expired": "null",
"Status": "null"
},
{
"id": "5678",
"First_Name": "null",
"Expired": "null",
"Status": "null"
}
]
预期输出:
{
"isInput": true,
"input": [
{
"id": "1234",
"First_Name": "null",
"Expired": "null",
"Status": "null"
},
{
"id": "5678",
"First_Name": "null",
"Expired": "null",
"Status": "null"
}
]
}
这可以使用 NiFi JoltTransform 完成吗JSON。就像将 json 内容放在“输入”字段中并添加另一个 isInput 键。 如果不是,我应该使用替换值
的 replaceText{
"isInput": true,
"input": "${input}"
}
但是,我应该如何将 JoltTransform 的输出放入 ${input} 字段
您可以将以下两个规格添加到您的链中:
{
"operation": "shift",
"spec": {
"isInput": "isInput",
"*": "input[]"
}
},
{
"operation": "default",
"spec": {
"isInput": "true"
}
}
但仅使用此链规范更短:
[
{
"operation": "shift",
"spec": {
"*": {
"id": "input[&1].id"
}
}
},
{
"operation": "default",
"spec": {
"input[]": {
"*": {
"Status": "null",
"Expired": "null",
"First_Name": "null"
}
},
"isInput": "true"
}
}
]
shift step一步就够了,比如
[
{
"operation": "shift",
"spec": {
"#true": "isInput",
"@": "input"
}
}
]
其中 @
签名键将复制当前级别的所有内容。