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

JQ嵌套对象构造场景下深层键提取是否存在可用的快捷语法?

jq 嵌套层级键提取简化语法说明

问题背景

根据 jq 官方《Types And Values》文档的对象构造规则,单层键提取可以使用{foo}这类快捷语法,直接从输入 JSON 中仅保留 foo 字段,自动移除其他外层键。
现有如下示例 JSON:

{
    "foo": {
        "bar": {
            "value": 42,
            "valid": true
        },
        "valid": false
    },
    "valid": false
}

如果需要仅保留.foo.bar对象且维持原有层级结构(即移除外层valid和.foo.valid字段),目前常规写法为{ "foo": { "bar": .foo.bar } }。

常见疑问解答

是否存在更简化的快捷语法?

存在,稳定可用的简化写法为:

{foo: .foo | {bar}}

该写法利用管道先定位到.foo对象,再通过单层快捷语法提取内部的bar字段,最终输出和完整嵌套写法完全一致。

能否支持类似{foo.bar}的简写形式?

截至 jq 1.7 稳定版本,暂不支持这类嵌套路径的简写语法。
{foo.bar}会被 jq 解析为「提取键名为foo.bar的顶层字段」,等效于{"foo.bar": .["foo.bar"]},完全不符合保留嵌套层级的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:57:04