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

使用jq从dependencies键添加bundleDependencies数组遇错,如何修复?

修复jq命令的bash语法错误并生成bundleDependencies数组

需求说明

需要用jq工具处理JSON数据,将dependencies对象的所有键提取出来,作为bundleDependencies数组添加到原JSON中。

原始JSON数据:

{
  "name": "hello",
  "dependencies": {
    "progress": "^2.0.0",
    "tar": "^6.2.1"
  }
}

期望输出:

{
  "name": "hello",
  "dependencies": {
    "progress": "^2.0.0",
    "tar": "^6.2.1"
  },
  "bundleDependencies": ["progress", "tar"]
}

报错分析

给出的命令触发bash语法错误:

# jq ".bundleDependencies = (.dependencies | keys[])" <<< "$json_string")"
bash: syntax error near unexpected token `)'

错误原因有两个:

  • 命令末尾多了一个多余的右括号),导致bash解析失败
  • jq表达式中使用keys[]会将每个键单独输出,最终bundleDependencies会被多次赋值为单个字符串,无法生成目标数组

修复后的命令

修正bash语法错误,同时调整jq表达式使用keys(而非keys[])直接获取数组:

jq '.bundleDependencies = (.dependencies | keys)' <<< "$json_string"

验证结果

执行上述命令后,输出结果与期望完全一致,成功将dependencies的键生成为bundleDependencies数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:56:00