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

如何用bash/jq将JSON单元素数组转换为对象

解决方案

可以使用jq的with_entries函数在JSON结构层面处理单元素数组的扁平化,彻底避免字符串替换带来的误操作问题:

jq 'with_entries(.value = .value[0])' input.json

命令说明

  • with_entries:遍历JSON对象的每个键值对,对每个键值对执行后续转换逻辑
  • .value = .value[0]:将每个键对应的数组值,替换为数组的第一个元素

效果验证

针对你的输入JSON:

{
  "account_number": [
    "123456"
  ],
  "account_name": [
    "name"
  ],
  "account_id": [
    654321
  ],
  "username": [
    "demo"
  ]
}

执行命令后会输出期望结果:

{
  "account_number": "123456",
  "account_name": "name",
  "account_id": 654321,
  "username": "demo"
}

优势对比

和你之前用的sed字符串替换方法不同,这个方案基于JSON语法结构处理:

  • 不会误改值内容中包含的[或](比如值为["user[admin]"]时,处理后会保留原字符串里的方括号)
  • 严格遵循JSON规范,避免字符串替换破坏JSON结构的风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:01:12