我有以下JSON:
{ "a_key": "A", "key_to_filter": "B", "c_key": "C" }
我希望使用jq作为压缩响应(使用jq -c "keys")来获取所有密钥。如果没有键"key_to_filter",我如何获得这个JSON的所有键?换句话说,我需要["a_key","c_key"]
jq
jq -c "keys"
bkhjykvo1#
你可以从键数组中减去这个键:
jq -c 'keys - ["key_to_filter"]'
Demo更详细但也更有效(如果重要的话),您可以根据需要使用map to select:
map
select
jq -c 'keys | map(select(. != "key_to_filter"))'
Demo正如@artild在评论中指出的,你也可以先del ete有问题的项目,然后再得到所有的键:
del
jq -c 'del(.key_to_filter) | keys'
Demo输出:
["a_key","c_key"]
注意,keys返回一个排序数组,如果你想让它们不排序,可以使用keys_unsorted。
keys
keys_unsorted
1条答案
按热度按时间bkhjykvo1#
你可以从键数组中减去这个键:
Demo
更详细但也更有效(如果重要的话),您可以根据需要使用
map
toselect
:Demo
正如@artild在评论中指出的,你也可以先
del
ete有问题的项目,然后再得到所有的键:Demo
输出:
注意,
keys
返回一个排序数组,如果你想让它们不排序,可以使用keys_unsorted
。