You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JQ高效排序JSON对象?寻求更简洁实现方案

简化JSON对象按size字段排序的jq实现

嘿,我来给你一个更简洁的jq方案!你原来的命令逻辑没问题,但确实有点繁琐,其实用jq内置的三个函数组合就能轻松搞定这个按size字段排序的需求。

简洁版命令

to_entries | sort_by(.value.size) | from_entries

怎么用?

把你的输入JSON传入这个命令就行:

  • 输入JSON:
{ "a": { "size":3 }, "b": { "size":2 }, "c": { "size":1 } }
  • 执行命令后得到的输出正好是你想要的结果:
{
  "c": {
    "size": 1
  },
  "b": {
    "size": 2
  },
  "a": {
    "size": 3
  }
}

为什么这个写法更简洁?

让我拆解一下每个步骤的作用:

  • to_entries:把原始的JSON对象转换成键值对数组,每个元素的结构是{"key": "键名", "value": 对应的值对象},这样我们就能直接访问到每个值里的size字段。
  • sort_by(.value.size):对这个键值对数组按照value.size的值进行升序排序(如果需要降序,只需要改成sort_by(-.value.size)即可)。
  • from_entries:把排序后的键值对数组重新转换回JSON对象,直接得到排序好的结果。

相比你原来手动处理键列表、映射size、再逐个构建对象最后合并的逻辑,这个组合完全利用jq的内置能力,代码更短、可读性也更强,是处理这类对象排序场景的标准做法。

内容的提问来源于stack exchange,提问作者Nick Peirson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:03:17