提问人:Nishu 提问时间:7/14/2023 最后编辑:Barbaros ÖzhanNishu 更新时间:7/14/2023 访问量:182
Jolt - 如何比较 if else 条件的两个值
Jolt - How to compare two values for if else condition
问:
我必须在 Jolt 中转换,条件是如果 name 和 displayName 中的值相同,则输出应将标志值 displayOnUI 设置为 true 否则为 false
输入:
[
{
"name": "Mike Ellis",
"email": "[email protected]",
"displayName": "MikeE"
},
{
"name": "Sam Perry",
"email": "[email protected]",
"displayName": "Sam Perry"
}
]
预期输出:
[
{
"name": "Mike Ellis",
"email": "[email protected]",
"displayName": "MikeE",
"displayOnUi": false
},
{
"name": "Sam Perry",
"email": "[email protected]",
"displayName": "Sam Perry",
"displayOnUi": true
}
]
我尝试转换,但无法获得正确的输出。有人可以帮忙吗?谢谢。
答:
1赞
Barbaros Özhan
7/14/2023
#1
您可以通过使用以下转换来检查属性的比较是形成数组(在这种情况下,只会生成 1 个元素)还是单个属性(在这种情况下,只会生成 2 个元素,嵌套在名为 Count 的新对象中),例如
[
{
"operation": "shift",
"spec": {
"*": {
"*ame": "Cnt[&1].Count.@0"
},
"@": "Original" // replicate the initial JSON value
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"Cnt": {
"*": {
"Count": "=size(@(1,&))"
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": {
"Count": "&1",
"*": "&1.&"
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"1": { // stands for the second component to compare
"1": { // keep the values are equal
"@(2,[0])": "[&3]",
"#true": "[&3].displayOnUi"
},
"2": { // keep the values are UNequal
"@(2,[0])": "[&3]",
"#false": "[&3].displayOnUi"
}
}
}
}
}
]
网站上的演示 http://jolt-demo.appspot.com/ 是:
评论
1赞
Nishu
7/14/2023
当然。做到了。
评论