选择子数组的条目

时间:2018-08-26 15:10:20

标签: json jq

我有一个看起来像json的

{
  "base": "abc",
  "members" : [
            {"fn": "maurice", "ln": "hickey"},
            {"fn": "john", "ln": "smith"},
            {"fn": "robin", "ln": "smith"},
            ...
          ],
  "date": "2018-08-26"
}

我正在尝试编写一个jq过滤器以给我相同的模式输出,但只包含一个成员数组的子集,例如所有的“史密斯”

{
  "base": "abc",
  "members" : [
            {"fn": "john", "ln": "smith"},
            {"fn": "robin", "ln": "smith"}
          ],
  "date": "2018-08-26"
}

任何指针将不胜感激。

1 个答案:

答案 0 :(得分:2)

这将获得所需的输出。

jq '.members |= map(select(.ln == "smith"))'

它更新.members,仅选择.ln == smith的对象