*Redis JSON.OBJKEYS 命令
JSON.OBJKEYS 在 RedisJSON 中获取指定路径对象的键名列表。
*语法
JSON.OBJKEYS key [path]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | JSON 文档键名 |
| path | String | 否 | JSONPath 路径,默认根路径 $ |
*返回值
- Array:对象键名列表
- Error:路径不存在或不是对象
*时间复杂度
O(N),N 为对象键的数量
*示例
*基本用法
> JSON.SET doc $ '{"a": 1, "b": 2, "c": 3}'
OK
> JSON.OBJKEYS doc
1) "a"
2) "b"
3) "c"
*嵌套对象
> JSON.OBJKEYS doc $.b
1) "c"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR path does not exist | 路径不存在 | 确认路径正确 |
| ERR path not an object | 目标不是对象 | 确认路径指向对象 |
*最佳实践
- 用于获取对象结构信息
- 配合 JSON.OBJLEN 获取对象大小
*FAQ
Q1: 返回的键名顺序是什么? A: 返回原始 JSON 对象中的键名顺序。
Q2: 空对象返回什么? A: 返回空数组。
Q3: 可以获取嵌套对象的键吗? A: 可以,通过 JSONPath 定位到嵌套对象。