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

能否通过单个JSONPath表达式筛选多个字段并输出指定JSON结构

首先需要先纠正你提供的输入JSON存在语法错误,c对象的闭合花括号后缺少逗号,修正后的合法输入如下:

{
  "a": 1,
  "b": "some root string",
  "c": {
    "d": "some inner string"
  },
  "e": "ignored field"
}

问题解答

标准JSONPath场景:不可以

标准JSONPath(Stefan Goessner提出的原始规范)的核心能力仅为查询匹配的节点值,输出结果是匹配到的节点值集合(通常为数组形式),不支持自定义输出JSON的键结构,也无法将深层节点c.d重命名为顶层键d输出。
你用标准JSONPath最多能查询到需要的三个值,表达式为$['a','b','c.d'],输出结果为[1, "some root string", "some inner string"],无法直接得到你需要的带自定义键的JSON对象。

增强版JSONPath实现场景:部分支持

如果你使用的是带扩展特性的JSONPath实现(如JSONPath-Plus、Jayway JSONPath等),部分库支持额外的映射配置,可以在提取值后重构为指定结构的JSON,但这类能力属于各实现的自定义扩展,不属于通用JSONPath的标准能力。

替代方案:单条jq表达式实现

如果你不限制必须使用JSONPath,仅需要单条表达式完成转换,可以用jq工具实现,表达式如下:

jq '{a, b, d: .c.d}'

执行后直接输出你需要的目标JSON结构。


内容的提问来源于stack exchange,提问作者Joaquín Fernández

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:36:00