使用 Jolt 过滤结果
Using Jolt to filter results
给定以下输入:
[
{
"order": "SI867-5309"
},
{
"order": ""
},
{
"order": "SI555-1212"
},
{
"order": {
"status": "Bad"
}
}
]
我想用 jolt 翻译成:
[
{
"order": "SI867-5309"
},
{
"order": "SI555-1212"
}
]
我已经接近:
[
{
"operation": "shift",
"spec": {
"*": {
"order": {
"SI*": "@1"
}
}
}
}
]
但事实并非如此,因为它虽然确实过滤掉了以 SI 开头的值,但它随后将这些值放入键中。我想我遗漏了一些明显的东西...
是的,您已经很接近结果了,只需将 "@1"
替换为 { "$": "[].&2" }
[
{
"operation": "shift",
"spec": {
"*": {
"order": {
"SI*": {
"$": "[].&2"
}
}
}
}
}
]
其中 "$"
运算符匹配 key,&2
匹配 value 并在前面加上 &2
和[].
分别用来分隔元素。
给定以下输入:
[
{
"order": "SI867-5309"
},
{
"order": ""
},
{
"order": "SI555-1212"
},
{
"order": {
"status": "Bad"
}
}
]
我想用 jolt 翻译成:
[
{
"order": "SI867-5309"
},
{
"order": "SI555-1212"
}
]
我已经接近:
[
{
"operation": "shift",
"spec": {
"*": {
"order": {
"SI*": "@1"
}
}
}
}
]
但事实并非如此,因为它虽然确实过滤掉了以 SI 开头的值,但它随后将这些值放入键中。我想我遗漏了一些明显的东西...
是的,您已经很接近结果了,只需将 "@1"
替换为 { "$": "[].&2" }
[
{
"operation": "shift",
"spec": {
"*": {
"order": {
"SI*": {
"$": "[].&2"
}
}
}
}
}
]
其中 "$"
运算符匹配 key,&2
匹配 value 并在前面加上 &2
和[].
分别用来分隔元素。