我有一个非常简单的JSON,如下所示:
{
"status":"DOWN",
"FTPService":{
"status":"UP"
},
"mail":{
"status":"UP",
"location":"somehost.example.com:-1"
},
"diskSpace":{
"status":"UP",
"total":2000396742656,
"free":1213046730752,
"threshold":10485760
},
"db":{
"status":"DOWN",
"database":"Oracle",
"schema":"foo"
},
"refreshScope":{
"status":"UP"
}
}
键“ mail”,“ diskspace”,“ db”等未知,可以有任何名称。
如果整体状态不是“ UP”,我想打印状态为“ UP”的所有对象。所需的示例输出为
"db":{
"status":"DOWN",
"database":"Oracle",
"schema":"foo"
},
答案 0 :(得分:1)
只需选择状态为DOWN的那些。 with_entries
在那里保留了原始结构。
with_entries(select(.value.status? == "DOWN"))