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

使用jq重命名嵌套JSON键出错,如何将department改为company并保留在properties中?

JSON嵌套键重命名错误分析与解决方法

问题场景

输入JSON结构(补充了根对象包裹,否则jq无法正常解析):

{
  "properties": {
    "name": "Ram",
    "age": "17",
    "department": "Sony"
  }
}

使用的jq命令:

jq '[.["properties.company"] = .properties.department| del(.properties.department)]' file

当前错误输出:

[
  {
    "properties": {
      "name": "Ram",
      "age": "17"
    },
    "properties.company": "Sony"
  }
]

期望输出:

{
  "properties": {
    "name": "Ram",
    "age": "17",
    "company": "Sony"
  }
}

错误原因

  1. 键路径写法错误:.["properties.company"]是在根层级创建一个名为properties.company的新键,而非在properties对象内部添加company键,完全偏离了目标层级。
  2. 多余的数组包裹:命令外层的[]会把整个JSON对象包装成数组,直接破坏了原有结构。

正确的jq命令

直接针对properties对象内部进行键的重命名操作:

jq '.properties.company = .properties.department | del(.properties.department)' file

执行结果

运行上述命令后,输出将与期望结果完全一致:department键被删除,properties对象内新增company键并继承原department的值,整体JSON结构保持不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:15:40