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

如何通过JSONPath获取匹配节点的父级键名

获取JSON中type为password的节点父键名列表

基于Jayway JSONPath(Java等常用实现)

Jayway扩展了JSONPath语法,支持直接获取匹配节点的父级键名,使用以下表达式即可:

$..abc.*[?(@.type=='password')]^

执行后会直接返回目标列表:["some_field", "some_field_3"]

标准JSONPath环境(无扩展)

标准JSONPath本身不支持直接返回键名,可通过两种方式处理:

  • 先获取匹配节点的完整路径(比如$['abc']['some_field']),再从路径字符串中提取倒数第二个键名;
  • 直接通过代码遍历筛选,以JavaScript为例:
const data = {
  "abc": {
    "some_field": { "title": "Token", "type": "password" },
    "some_field_2": { "title": "Domain", "type": "text" },
    "some_field_3": { "title": "token2", "type": "password" }
  }
};

const passwordKeys = Object.keys(data.abc).filter(key => data.abc[key].type === 'password');

运行后passwordKeys就是你需要的键名列表。

命令行用jq工具处理

如果是在命令行环境下操作JSON,用jq可以快速实现:

jq '.abc | to_entries | map(select(.value.type == "password").key)' your-json-file.json

执行后输出结果即为目标键名数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:20:31