我需要创建一个JSON数组,以便使用Nifi将其拆分为几个作业。该数组需要基于JSON中的现有数组创建。
我不知道如何在JSON中动态创建对另一个对象的引用。我希望引用"@(2,@)“工作,但这不受支持。
输入
{
"name": "Loki",
"id": "1234",
"loc": "Utgard",
"age": "unknown",
"listitems": [
"name",
"id"
]
}SPEC (这不起作用):
[
{
"operation": "shift",
"spec": {
// Loop all listitems
"listitems": {
"*": {
// Get the value of the current item and push to processlist.type array
"@": "processlist[#2].type",
// Here is the problem, I need to get the "top level" value for the current value/key
"@(2,@)": "processlist[#2].value"
}
}
}
}
]预期输出:
{
"processlist" : [
{
"type" : "name",
"value" : "Loki"
}, {
"type" : "id",
"value" : "1234"
}
]
}SPEC (可以运行,但不正确)
[
{
"operation": "shift",
"spec": {
// Loop all listitems
"listitems": {
"*": {
// Get the value of the current item and push to processlist.type array
"@": "processlist[#2].type",
// Here is the problem, I need to get the top level value for the current value/key
// Forcing this to "name" will at least execute the code
"@(2,name)": "processlist[#2].value"
}
}
}
}
]有什么想法吗?
发布于 2021-06-08 23:50:59
当@(3,&)动态漫游时,您可以通过添加"*"密钥进一步嵌套当前规范,因为这个&符号表示产生的密钥值name和id,例如
[
{
"operation": "shift",
"spec": {
"listitems": {
"*": {
"*": {
"@1": "processlist[#3].type",
"@(3,&)": "processlist[#3].value"
}
}
}
}
}
]https://stackoverflow.com/questions/67888557
复制相似问题