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

如何用JSONPath排除指定键(排除application/ld+json)

JSONPath 排除指定键获取内容的实现方案

示例JSON

{"post": {"operationId": "post-collection","responses": {"201": {"description": "Post something","content": {"application/ld+json": {"schema": {"$ref": "./models/Mapping.jsonld.json"}},"application/hal+json": {"schema": {"$ref": "./models/Mapping.jsonHal.json"}},"application/vnd.api+json": {"schema": {"$ref": "./models/Mapping.vndApi.json"}}}}}}

需求

从上述JSON的content节点下获取所有子内容,但排除application/ld+json对应的条目,仅使用基础JSONPath语法(不借助函数或额外编程),测试工具为jsonpath.com。

解决方案

提供两种符合要求的实现方式:

1. 明确列举需保留的键

如果清楚所有需要保留的键,直接在JSONPath中指定这些键即可:

$..content['application/hal+json', 'application/vnd.api+json']

这种方式通过属性列表直接选择目标内容,无特殊语法依赖,在jsonpath.com中会返回application/hal+json和application/vnd.api+json对应的两个对象。

2. 动态排除指定键

如果不确定content下的其他键,需要动态排除application/ld+json,可以利用JSONPath内置的$key变量做否定匹配:

$..content.*[?($key != 'application/ld+json')]

该表达式先选中content下的所有子节点,再过滤掉键名为application/ld+json的条目,最终返回剩余所有内容,在jsonpath.com中可正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:25:09