如何使用jq根据lastModified日期对JSON数据进行排序?
解决JSON中.items数组按lastModified排序的问题
你之前用的jq -s '.[].items |= sort_by(.lastModified)'没生效,核心原因是**lastModified字段不在items的直接条目里,而是嵌套在每个item的assets数组元素中**。
要实现按lastModified从旧到新排序items数组,需要指定排序依据为每个item下assets里的lastModified值,正确的jq命令如下:
jq '.[].items |= sort_by(.assets[0].lastModified)'
关键说明:
- 你的JSON结构里,每个
items条目下的assets是数组(示例中仅含一个元素),所以用.assets[0].lastModified精准定位到日期字段 sort_by()默认按升序(旧到新)排序,刚好匹配你的需求- 无需
-s选项:你的输入本身就是顶层数组,-s会强制合并输入为数组,属于多余操作
直接将你的JSON内容传入该命令,就能得到按lastModified排序后的结果。
内容的提问来源于stack exchange,提问作者LostHat
相关产品推荐
相关产品推荐

