如何用jq根据嵌套对象的Status值筛选原格式JSON对象?
解决方法
你的问题出在路径写错了——Status字段不是直接在对象的根层级,而是嵌套在Result下面,之前的筛选条件找不到对应值,所以才返回空结果。
正确的jq命令
两种写法都可以,只要把路径修正为.value.Result.Status:
- 用
to_entries+map+from_entries组合:
to_entries | map(select(.value.Result.Status == "FAILURE")) | from_entries
- 用更简洁的
with_entries:
with_entries(select(.value.Result.Status == "FAILURE"))
执行结果
将你的JSON数据传入jq执行上述命令后,会得到符合要求的结果:
{ "BAR": { "id": "45345535", "Result": { "Status": "FAILURE", "Reason": "" } } }
内容的提问来源于stack exchange,提问作者Arvind
相关产品推荐
相关产品推荐

