我有一个JSON,记录如下:
[
{"number":1},
{"number":3}
]
字符串
并且想要选择(过滤)具有字段“number”的最大值或最小值的记录。
我可以像这样得到“number”的最小值或最大值:
第一个月
(发射1)
我可以输出布尔值:
$ echo '[{"number":1},{"number":3}]' | jq '.[].number==([ .[].number ] | min)'
true
false
型
但当我尝试将其与select结合在一起时,它失败了:
$ echo '[{"number":1},{"number":3}]' | jq 'map(select(.[].number==([ .[].number ] | min)))'
jq: error (at <stdin>:1): Cannot index number with string "number"
型
我觉得我已经接近了,但是卡住了。我做错了什么?
提前感谢!
1条答案
按热度按时间hts6caw31#
字符串
参见https://jqplay.org/s/bUwtNrfAE-
第一个
要检索第一个最小项,请执行以下操作:
型
min_by、minimum_by等
jq有内置的
max_by
和min_by
,如https://stedolan.github.io/jq/manual/#Builtinoperatorsandfunctions上的文档所示有关
maximal_by
的定义,请参阅https://github.com/stedolan/jq/wiki/Cookbook#find-the-maximal-elements-of-an-array-or-stream上的jq cookbook。