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

如何通过JSON Path从JSON字符串中获取JSON节点值?

嘿,我来帮你搞定用JSON Path从你的JSON里提取节点值的事儿!先把你的JSON结构贴出来方便参考(最后那个"Eternal Flame"的对象虽然没写完,但咱们就用已有的内容举例):

{ 
  "squadName": "Super hero squad", 
  "homeTown": "Metro City", 
  "formed": 2016, 
  "secretBase": "Super tower", 
  "active": true, 
  "members": [ 
    { 
      "name": "Molecule Man", 
      "age": 29, 
      "secretIdentity": "Dan Jukes", 
      "powers": [ "Radiation resistance", "Turning tiny", "Radiation blast" ] 
    }, 
    { 
      "name": "Madame Uppercut", 
      "age": 39, 
      "secretIdentity": "Jane Wilson", 
      "powers": [ "Million tonne punch", "Damage resistance", "Superhuman reflexes" ] 
    }, 
    { 
      "name": "Eternal Flame", 
      "age": 1000000, 
      "...": "..." 
    }
  ]
}
基础JSON Path语法快速梳理

先给你几个核心规则,记牢了基本就能搞定大部分场景:

  • $ 代表整个JSON的根节点
  • . 用来直接访问子节点(比如$.squadName就是根下的squadName属性)
  • [] 用来定位数组元素,索引从0开始(比如$.members[0]就是第一个成员)
  • * 是通配符,匹配所有对应层级的元素
  • ?() 用来过滤数组,括号里写筛选条件
针对你的JSON的常用查询示例

下面结合你的数据给你举几个实用的例子:

1. 获取顶层属性值

  • 取小队名称:$.squadName → 返回结果:"Super hero squad"
  • 取成立年份:$.formed → 返回结果:2016
  • 取是否处于活跃状态:$.active → 返回结果:true

2. 访问数组中的单个元素

  • 取第一个成员的完整信息:$.members[0] → 返回Molecule Man的整个对象
  • 取第二个成员的年龄:$.members[1].age → 返回结果:39
  • 取第一个成员的第二个超能力:$.members[0].powers[1] → 返回结果:"Turning tiny"

3. 批量获取数组中同类型属性

  • 取所有成员的名字:$.members[*].name → 返回数组:["Molecule Man", "Madame Uppercut", "Eternal Flame"]
  • 取所有成员的所有超能力(平级展开):$.members[*].powers[*] → 返回所有超能力的集合数组

4. 过滤数组元素(按条件筛选)

  • 筛选年龄大于30的成员:$.members[?(@.age > 30)] → 返回Madame Uppercut和Eternal Flame的对象
  • 筛选拥有"Damage resistance"超能力的成员:$.members[?(@.powers includes 'Damage resistance')] → 返回Madame Uppercut的对象

注意:不同JSON Path的实现工具,过滤语法可能略有差异,比如有些工具用contains代替includes,使用前可以查一下对应工具的文档哦

如果还有更复杂的查询需求,比如嵌套过滤、正则匹配之类的,也可以根据基础语法拓展,不过上面这些应该能覆盖大部分日常场景啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:22:28