过滤掉我需要的键并创建一个新数组

Filter out keys I need and create a new array

{
"Key": "value"
"Results": [
  {
    "KeyIwant":"value"
    ...
  }
]
}

我想获取仅包含我指定的键及其值的对象列表。

到目前为止,我已经从互联网上找到了一些东西,但它创建的是对象而不是列表,而且没有逗号。

jq '.Results | .[] |  with_entries(select([.key] | inside(["key","key2", "key3"])))' input.json

为了提高效率,您可以使用 IN:

[.Results[]|with_entries(select(.key|IN("KeyIwant","etc"))) ]

如果你想让白名单呈现为JSON数组,比如$w,那么写IN($w[])