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

如何用jq将JSON一级键映射到嵌套的latest字段值?

使用jq提取JSON对象中嵌套的latest字段值

假设你有这样的JSON输入:

{
  "foo": {
    "current": "0.15.14",
    "wanted": "0.15.14",
    "latest": "0.16.4"
  },
  "bar": {
    "current": "8.27.0",
    "wanted": "8.27.0",
    "latest": "8.29.0"
  },
  "baz": {
    "current": "27.1.5",
    "wanted": "27.1.5",
    "latest": "27.1.6"
  }
}

(注意:原输入里每个嵌套对象最后一个字段带有多余逗号,严格JSON规范不允许这种写法,使用前建议先删除这些逗号,避免jq报错)

想要转成下面的结构:

{
  "foo": "0.16.4",
  "bar": "8.29.0",
  "baz": "27.1.6"
}

直接用这条jq命令就能实现:

jq 'with_entries(.value = .value.latest)'

命令解释

  • with_entries():遍历JSON对象的每一组键值对,对每个条目进行自定义处理
  • .value = .value.latest:把每个条目里的value(也就是原来的嵌套对象)替换成该对象内的latest字段值

如果你的JSON内容存在本地文件中(比如命名为input.json),可以这样执行命令:

jq 'with_entries(.value = .value.latest)' input.json

内容的提问来源于stack exchange,提问作者Mr.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:50:29