如何用jq从指定JSON输出中提取所有顶层键?
如何用jq提取JSON对象的顶层键?
要提取你给出的JSON对象的顶层键,jq提供了几个简洁实用的方法,下面逐个说明:
获取顶层键的JSON数组
使用keys过滤器即可直接返回所有顶层键组成的JSON数组:jq 'keys' your_data.json针对你的JSON数据,运行后输出会是:
[ "201110131738QP27N", "201803271459ICV69", "2018032715008ZM2G", "201803281536PSKR4" ]获取每行一个的纯文本键
如果想要更易读的无格式纯文本输出(去掉JSON数组的括号和引号),可以结合-r(raw输出)参数和数组展开语法[]:jq -r 'keys[]' your_data.json输出结果会是:
201110131738QP27N 201803271459ICV69 2018032715008ZM2G 201803281536PSKR4保持原始键的顺序(jq 1.6及以上版本支持)
默认keys过滤器会对键进行Unicode排序,如果需要保留JSON里原始的键顺序,可以改用keys_unsorted过滤器:jq 'keys_unsorted' your_data.json这样输出的数组顺序会和你原始JSON中的键顺序完全一致。
内容的提问来源于stack exchange,提问作者RafaelBrianeziDaSilva
相关产品推荐
相关产品推荐

