是否可以在 JOLT 转换上执行多个条件来创建 or 或 and ?
我找到了一些关于 If Else 的文档,但无法将其应用于我正在尝试的内容。这是单个元素上的 if else,我需要它与多个 or 一起使用。例如我有以下 json:
[
{
"alpha": "a",
"beta": "b",
"omega": "o",
"exists": true,
"description": "goodbye world"
},
{
"alpha": "1",
"beta": "2",
"omega": "3",
"exists": false,
"description": "hello world"
},
{
"alpha": "z",
"beta": "x",
"omega": "y",
"exists": true,
"description": "hello mars"
}
]
我需要找出一个 JOLT,它可以查看整个数组并说“如果 Exists 为 True 或描述为 hello world”,因此它输出:
[
{
"alpha": "a",
"beta": "b",
"omega": "o",
"exists": true,
"description": "goodbye world"
},
{
"alpha": "1",
"beta": "2",
"omega": "3",
"exists": false,
"description": "hello world"
},
{
"alpha": "z",
"beta": "x",
"omega": "y",
"exists": true,
"description": "hello mars"
}
]
摇晃找到你好世界:
[
{
"operation": "shift",
"spec": {
"*": {
"description": {
"hello world": null,
"*": {
"@2": "&1"
}
}
}
}
}
]
我知道如何震动 if 存在和过滤器或描述部分,但如何将它们放在一起以像 or 子句一样协同工作,例如: if((“存在”==“真”)|(“描述”==“你好世界”))
您可以通过连接这些值(
true
和hello world
)来生成新属性,然后通过条件检查方法(例如)检查是否存在
[
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"ed": "=concat(@(1,exists),@(1,description))"
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"ed": {
"true*|*hello world": { // | stands for OR
"@2": ""
}
}
}
}
},
{ // get rd of the lately generated attribute
"operation": "remove",
"spec": {
"*": {
"ed": ""
}
}
}
]