提问人:Bhavna Gawhade 提问时间:7/10/2023 最后编辑:Barbaros ÖzhanBhavna Gawhade 更新时间:7/14/2023 访问量:70
如何在 jolt 中比较两个字符串值
How to compare two string values in jolt
问:
我想根据输入 JSON 的两个字段值过滤掉输入 JSON。
输入 JSON
[
{
"from_Store": "Test1",
"to_Store": "Test1",
"items": [
{
"UPC": "8240959370255",
"shippedQuantity": 1
}
]
},
{
"from_Store": "Test2",
"to_Store": "Test3",
"items": [
{
"UPC": "8240959370210",
"shippedQuantity": 1
}
]
}
]
- 如果 from_Store 和 to_Store 的值不匹配,则将映射的完整元素保留在输出 JSON 中。
- 如果值匹配,则整个元素不应出现在输出中
预期输出 JSON
[
{
"from_Store": "Test2",
"to_Store": "Test3",
"items": [
{
"UPC": "8240959370210",
"shippedQuantity": 1
}
]
}
]
是否有任何功能可以比较 Jolt 中的字符串?
任何帮助将不胜感激!
答:
1赞
Barbaros Özhan
7/11/2023
#1
您可以交换键值对和属性,无论是否为每个节点形成数组。如果形成数组,那么我们将只得到 1 个元素,例如。属性的值相等。否则,我们将得到 2 个元素,因此,我们将保留它们作为结果,例如to_Store
from_Store
[
{
"operation": "shift",
"spec": {
"*": {
"*_*": "Cnt[&1].Count.@0" // to represent both of the attributes with unique underscores, eg. "from_store" and "to_store"
},
"@": "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": { // the second component
"2": { // keep the value if its value is 2
"@(2,[0])": "[]"
}
}
}
}
}
]
评论