我想在 Nifi 中实现以下请求-响应场景。我的目标是在更多不同的处理器中使用每个值作为数组(对象键 1,对象键 2,...)。
因此,如果我可以将其转换为多个 JSON,那么使用拆分 JSON 之后我可以使用多个值。
请为此提出各种解决方案。
输入 JSON:
[
{
"ID": "789654",
"Date": "29th Feb",
"Key" : ["object key 1", "object key 2", "object key 3"....]
}
]
Run Code Online (Sandbox Code Playgroud)
输出 JSON:
[
{
"ID": "789654",
"Date": "29th Feb",
"Key1" : "object key 1"
},
{
"ID": "789654",
"Date": "29th Feb",
"Key2" : "object key 2"
},
{
"ID": "789654",
"Date": "29th Feb",
"Key3" : "object key 3"
},
.
.
.
.
.
.
]
Run Code Online (Sandbox Code Playgroud)
你有两层数组。我假设在根数组中你可以有几个对象
[
{
"ID" : "111",
"Date" : "29th Feb",
"Key" : ["object key 1", "object key 2", "object key 3", "object key 4"]
},
{
"ID" : "222",
"Date" : "27th Feb",
"Key" : ["object key 5", "object key 6"]
}
]
Run Code Online (Sandbox Code Playgroud)
使用以下流程
$
$.ID
和$.Date
值与相应的名称属性$.Key
Key
. 你必须用双引号将字符串包裹在内容中:(?s)(^.*$)
->"$1"
$
到Key
属性中极其另类的变体
ExecuteGroovyScript
与脚本一起使用:
[
{
"ID" : "111",
"Date" : "29th Feb",
"Key" : ["object key 1", "object key 2", "object key 3", "object key 4"]
},
{
"ID" : "222",
"Date" : "27th Feb",
"Key" : ["object key 5", "object key 6"]
}
]
Run Code Online (Sandbox Code Playgroud)