簡體   English   中英

使用jq從嵌套的JSON對象中提取匹配的子json

[英]Extracting matched child json from a nested JSON object with jq

給定一個JSON對象數組:

 {
  "header" : {
    "user" : "baskar"
  },
  "requests" : [ {
    "first_name" : "mike",
    "last_name" : "mat"
  }, {
    "first_name" : "mike1",
    "last_name" : "mat"
  } ],
  "check" : [ "Y" ]
}

我想根據條件從嵌套請求中提取鍵/值的子集,同時保持外部對象的其他屬性不變,產生如下內容:當我搜索first_name ='mike'時

{
  "header" : {
    "user" : "baskar"
  },
  "requests" : [ {
    "first_name" : "mike",
    "last_name" : "mat"
  } ],
  "check" : [ "Y" ]
}

我嘗試了以下的事情,

[.requests[] | select(.first_name == "mike")]

但是,它給出了匹配請求的子集,但沒有返回header和check元素。

我確信必須有一個相當簡單的方法來實現這一點與jq。 幫助贊賞。

您需要通過過濾更新請求數組來考慮它。

這應該工作:

.requests |= map(select(.first_name == "mike"))

暫無
暫無

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

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