*Redis JSON.OBJLEN 命令

JSON.OBJLEN 在 RedisJSON 中获取指定路径对象中键值对的数量。


*语法

JSON.OBJLEN key [path]

*参数说明

参数 类型 必填 说明
key String JSON 文档键名
path String JSONPath 路径,默认根路径 $

*返回值

  • Integer:对象中键值对的数量
  • Error:路径不存在或不是对象

*时间复杂度

O(1)

*

*示例

*基本用法

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

*常见错误

错误 原因 解决
ERR path does not exist 路径不存在 确认路径正确
ERR path not an object 目标不是对象 确认路径指向对象

*最佳实践

  • 快速获取对象大小,无需遍历所有键
  • 用于检查对象是否为空
  • 配合 JSON.OBJKEYS 使用

*FAQ

Q1: 空对象返回什么? A: 返回 0。

Q2: 和 JSON.ARRLEN 有什么区别? A: OBJLEN 返回对象键值对数量;ARRLEN 返回数组长度。

Q3: 可以获取嵌套对象的长度吗? A: 可以,通过 JSONPath 定位到嵌套对象。