使用此示例:
{
"node1": {
"name": "host001",
"free": true
},
"node2": {
"name": "host002",
"free": false
},
"node3": {
"name": "host003",
"free": false
},
"node4": {
"name": "host004",
"free": true
}
}
我可以使用以下命令检索"Free"=true的 node 名:
.[]|select(.free == true).name
https://jqplay.org/s/vmQFs8KYF2Q个
但是我的JSON有一些没有这个"自由"键的元素:
{
"id": "foo",
"node1": {
"name": "host001",
"free": true
},
"node2": {
"name": "host002",
"free": false
},
"node3": {
"name": "host003",
"free": false
},
"node4": {
"name": "host004",
"free": true
}
}
然后我的命令失败,错误为parse error: Invalid numeric literal at line 2, column 4
我认为解决方法在于"Has(Free)",但找不到正确的语法.