JSON.OBJLEN

报告 key 中路径的 JSON 对象中的键数

语法

JSON.OBJLEN key [path]

引入版本:1.0.0

复杂度摘要:O(1)

返回 JSON 对象中与给定路径表达式匹配的路径处的键数。

[!NOTE] JSON 对象是 JSON 文档中的一种结构,其中包含一组无序的键值对(也称为名称值对)。不要将 Redis 键与 JSON 对象键混淆。

示例

必需参数

key

是存储 JSON 类型值的 Redis 键。

可选参数

path

是

  • JSONPath 表达式
  • 根“$”,或以“$.”或“$[”开头的任何字符串。
  • 解析为 key 中的所有匹配位置。
  • 遗留路径表达式
  • 任何与上述 JSONPath 语法不匹配的字符串。
  • 允许省略前导“.”(例如,“name”和“.name”是等效的)。
  • 仅解析为 key 中的第一个匹配位置。

默认值:“.”(指向文档根目录的旧路径)。

示例

redis> JSON.SET doc $ '{"a":[3], "nested": {"a": {"b":2, "c": 1}}}' OK redis> JSON.OBJLEN doc $..a 1) (nil) 2) (integer) 2

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 支持
✅ 灵活且每年一次
✅ 免费和固定

返回值

RESP2

如果 path 是 JSONPath 表达式:

如果 path 是旧路径表达式:

  • 如果 key 不存在,则为 nil。
  • 如果 path 没有匹配项,则为 nil。
  • 如果第一个匹配不是对象,则为 简单错误。
  • 整数回复:第一个匹配的键的数量。

RESP3

如果 path 是 JSONPath 表达式:

如果 path 是旧路径表达式:

  • 如果 key 不存在,则为 nil。
  • 如果 path 没有匹配项,则为 nil。
  • 如果第一个匹配不是对象,则为 简单错误。
  • 整数回复:第一个匹配的键的数量。

参见

JSON.OBJKEYS

资料来源:Redis 官方 JSON.OBJLEN 文档;中文内容参考 Redis 文档许可。