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

如何使用Jsonata谓词过滤不含指定属性的对象?

筛选JSON数组中不含指定属性的对象

源数据

[
  {
    "a": 1
  },
  {
    "a": 2,
    "b": 1
  }
]

已知有效查询(筛选含b的对象)

使用查询语句 $[b] 可筛选出包含属性b的对象,结果为:

{
  "a": 2,
  "b": 1
}

需求:筛选不含b的对象

尝试使用 $[$not(b)] 得到** no match **,是因为该语法不符合标准JSONPath的否定判断规则。

正确查询语句

使用标准JSONPath的过滤表达式,通过否定属性存在性来筛选:

$[?(!@.b)]

返回结果

{
  "a": 1
}

语法说明

  • ?():JSONPath的过滤断言,用于对数组元素进行条件判断
  • @:代表当前遍历到的数组元素
  • !@.b:判断当前元素不存在b属性(当元素没有b时,@.b返回undefined,取反后为true,满足过滤条件)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:26:58