{
"name": "ford",
"availableVersions": [
{
"version": 111,
"count": 3
},
{
"version": 122,
"count": 2
},
{
"version": 133,
"count": 3
},
{
"version": 144,
"count": 1
}
],
"RealVersion": 155
}
{
"name": "bmw",
"availableVersions": [
{
"version": 244,
"count": 1
},
{
"version": 255,
"count": 3
} ],
"RealVersion": 120
}
我现在有这个demo.json文件if (name == 'ford')
(名称可以是变量),我想获取其count != 3
的所有版本
并且如果所有版本的count == 3
我都想要获得福特的RealVersion,那么在这种情况下输出应该是。
EXPECTED OUTPUT = [122 144 ]
我正在使用jq工具来解析json文件
现在,如果所有版本计数== 3
{
"name": "ford",
"availableVersions": [
{
"version": 111,
"count": 3
},
{
"version": 122,
"count": 3
},
{
"version": 133,
"count": 3
},
{
"version": 144,
"count": 3
}
],
"RealVersion": 155
}
{
"name": "bmw",
"availableVersions": [
{
"version": 244,
"count": 1
},
{
"version": 255,
"count": 3
} ],
"RealVersion": 120
}
现在,在这种情况下,所有版本的计数都== 3,所以现在我想获得的实际版本是155
EXPECTED OUTPUT SHOULD BE 155
有人可以帮助我吗?
答案 0 :(得分:0)
以下程序在与-n命令行选项一起调用时,在两种情况下均会产生预期的输出:
inputs
| .RealVersion as $RealVersion
| select(.name == "ford")
| .availableVersions
| map(select(.count != 3))
| if length > 0 then map(.version)
else $RealVersion
end
具体地说,在第一种情况下,它将生成一个JSON数组,在第二种情况下,它将生成.ReadVersion
的实际值。