簡體   English   中英

如何使用 jq 根據鍵值對過濾 object?

[英]how to use jq to filter an object based on it's key:value pair?

假設這是輸入

>echo '{"A": {"x": 1}, "B": {"x":2}, "C":{"x":3}}' | jq '.'
{
  "A": {
    "x": 1
  },
  "B": {
    "x": 2
  },
  "C": {
    "x": 3
  }
}

我想獲得"x" == 2的回報 object 。 我知道如何實現這一點的唯一方法就是通過這個

>echo '{"A": {"x": 1}, "B": {"x":2}, "C":{"x":3}}' | jq '.[] | select(.x==2)'
{
  "x": 2
}

有沒有辦法讓 jq 像這樣返回我?

{
  "B": {
    "x": 2
  },
}

 
with_entries(select(.value.x == 2))

您還可以使用 map_values:

map_values(select(.x == 2))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM