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

使用jq提取JSON对象部分内容时如何保留原始键名?

jq保留键名提取指定属性的写法

你需要的核心语法是对象构造简写,直接使用以下命令即可:
jq '{apples, cherries}'

这个写法是jq的语法糖,等价于完整的键值赋值写法:
jq '{apples: .apples, cherries: .cherries}'

示例验证

假设输入的原始JSON为:

{
  "apples": ["红富士", "嘎啦果"],
  "bananas": 5,
  "cherries": {"origin": "智利", "stock": 30},
  "oranges": 12
}

执行上述命令后输出的结果为:

{
  "apples": [
    "红富士",
    "嘎啦果"
  ],
  "cherries": {
    "origin": "智利",
    "stock": 30
  }
}

完全保留原始键名和属性结构,符合需求。

其他适用场景

  • 若需要给提取的属性重命名:使用完整键值对写法即可,比如jq '{pingguo: .apples, yingtao: .cherries}'
  • 若输入是JSON数组,每个数组元素都包含目标属性:在外层套map方法,jq 'map({apples, cherries})'
  • 若需要提取的目标属性较多,不想逐一罗列:使用with_entries过滤键名,jq 'with_entries(select(.key == ("apples", "cherries")))'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:45:09