相关疑难解决方法(0)

如何使用jq按元素属性值过滤对象数组?

我喜欢使用jq过滤json文件:

jq . some.json
Run Code Online (Sandbox Code Playgroud)

给定json包含一个对象数组:

{
  "theList": [
    {
      "id": 1,
      "name": "Horst"
    },
    {
      "id": 2,
      "name": "Fritz"
    },
    {
      "id": 3,
      "name": "Walter"
    },
    {
      "id": 4,
      "name": "Gerhart"
    },
    {
      "id": 5,
      "name": "Harmut"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想过滤该列表只显示id为2和4的元素,因此预期输出为:

{
  "id": 2,
  "name": "Fritz"
},
{
  "id": 4,
  "name": "Gerhart"
}
Run Code Online (Sandbox Code Playgroud)

如何使用jq过滤json?我玩过选择和地图,但没有任何工作,例如:

$ jq '.theList[] | select(.id == 2) or select(.id == 4)' array.json
true
Run Code Online (Sandbox Code Playgroud)

json jq

27
推荐指数
3
解决办法
2万
查看次数

标签 统计

jq ×1

json ×1