22

私が望まない多くのキーを持つオブジェクトのリストを考えると:

[{
    "name": "Alice",
    "group": "Admins",
    "created": "2014"
}, {
    "name": "Bob",
    "group": "Users",
    "created": "2014"
}]

これらのオブジェクトをフィルタリングして、必要なキーのみを含めるにはどうすればよいですか?

[{
    "name": "Alice"
}, {
    "name": "Bob"
}]

試してみましjq '.[].name'たが、オブジェクトを保持するのではなく、値を抽出します。

4

5 に答える 5

29

関数を使用してmap()任意のキーをフィルタリングできます。

jq 'map({name: .name})'

アップデート

提案者@WilfredHughes: 上記のフィルターは次のように省略できます。

jq 'map({name})'
于 2015-01-08T11:19:16.350 に答える
4

関数のない別のソリューションmap

jq '[.[] | {name: .name}]'
于 2016-06-10T15:37:54.607 に答える