如何解决Jolt - 使用键列表获取值,@(2,@) 的替代方法
我需要创建一个 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",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"
}
}
}
}
]
有什么想法吗?
解决方法
您可以通过添加 "*"
键来进一步嵌套当前规范,同时通过 @(3,&)
动态漫游,因为此&符号代表产生的键值 name
和 {{1} } 比如
id
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。