jq如何获取对象中的最后一个条目

Tim*_*imm 2 bash jq

我正在使用 jq 1.6 来获取对象中的最后一个条目。它应该像这样工作:

data='{ "1": { "a": "1" }, "2": { "a": "2" }, "3": { "a": "3" } }'
result=`echo $data | jq 'myfilter'`
echo $result
{ "3": { "a": "3" } }
Run Code Online (Sandbox Code Playgroud)

我尝试过这些过滤器:

jq '. | last' # error: Cannot index object with number

我如何告诉 jq 引用该数字?

jq '. | to_entries | last' # { "key": "3", "value": { "a": "3" } }

我想我可以通过连接键和值条目来解决这个问题。有没有更简单的方法?

教程和手册没有帮助。所以也没有什么乐趣。

Aar*_*ron 5

您可以使用以下内容:

jq 'to_entries | [last] | from_entries'
Run Code Online (Sandbox Code Playgroud)

在这里尝试一下

我们不能使用with_entries(last),因为last返回单个元素并from_entries需要一个数组,因此是[...]上面的构造。