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

如何使用jq将projects数组转换为指定结构的JSON对象

解决JSON数组转键值对象的jq方法

你当前用map得到的是数组结构,要转换成目标对象,只需在map之后追加add操作,把数组中的多个单键对象合并为一个完整对象:

.projects | map({(.): {name: .}}) | add

原理说明

  • map({(.): {name: .}}) 会将数组内每个元素转换为{"abc": {"name": "abc"}}这类单键对象,最终生成一个包含多个独立对象的数组。
  • add 会把数组里的所有对象合并,由于每个对象的键唯一,合并后就得到你需要的键值对结构。

更简洁的替代写法

也可以用from_entries实现,先将数组元素转为{key, value}格式,再转换为对象:

.projects | map({key: ., value: {name: .}}) | from_entries

示例验证

输入JSON:

{
  "otherField": "xxx",
  "projects": [
    "abc",
    "xyz"
  ]
}

执行上述jq命令后,输出:

{
  "abc": {
    "name": "abc"
  },
  "xyz": {
    "name": "xyz"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:22:07