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

如何使用JQ Select将JSON的header数组转换为键值对对象

JQ 数组转键值对对象实现方法

你之前使用的{header: [.header[]]}逻辑只是遍历原数组后重新封装为数组结构,不会生成对象,正确实现转换的JQ语句如下:

{ header: (.header | map(split(": ") | {(.[0]): .[1]}) | add) }

逻辑说明

  • 首先定位到待处理的.header数组字段
  • 用map遍历数组内每一个字符串元素:
    • 通过split(": ")将key: value格式的字符串按分隔符切分为两部分,例如"key1: value1"会被切为["key1", "value1"]
    • 动态构造单键值对对象:以切分结果的第一项为键、第二项为值
  • 用add将遍历生成的所有单键值对对象合并为一个完整对象,赋值给外层的header字段

执行效果

用上述语句处理你提供的原始JSON,会输出完全符合预期的结果:

{
  "header": {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  }
}

兼容优化

如果你的value值本身可能包含: 字符,可以把split逻辑调整为仅从第一个匹配分隔符的位置拆分,避免切分value内容,优化后写法:

{ header: (.header | map(split(": "; 2) | {(.[0]): .[1]}) | add) }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:30:54