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

如何用JSON Path筛选直接返回数组的API响应

解决方案

要筛选出响应直接返回数组(即响应的顶层Schema为数组,而非嵌套在对象属性中的数组)的条目,你需要调整JSON Path表达式,精准定位到响应Media Type下的顶层Schema:

$.paths.*.*.responses.*.content.*.schema[?(@.type == 'array')]

原表达式出错原因

原表达式$.paths.[*].[*].responses.[*].content.[?(@.type === 'array')]存在两个核心问题:

  1. 路径中多余了不必要的.(比如paths.[*]应简化为paths.*,JSON Path中*匹配子节点时无需额外加.)
  2. 最关键的是,它直接匹配content节点下的type,但实际上type: array应该出现在content -> [media-type] -> schema层级,而非content本身。这导致它会误匹配到嵌套在对象属性中的数组Schema(也就是你遇到的第二个非目标结果)。

表达式详细说明

  • $.paths.*.*:匹配所有接口路径下的所有HTTP请求方法(GET/POST等)
  • responses.*:匹配该接口的所有响应状态码(200/401等)
  • content.*:匹配响应支持的所有媒体类型(比如application/json)
  • schema[?(@.type == 'array')]:仅保留顶层Schema类型为数组的条目

使用该表达式后,会精准返回你需要的目标响应数组Schema,不会包含嵌套在对象属性中的数组定义。


内容的提问来源于stack exchange,提问作者Antonio Gamiz Delgado

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:05:14