JSON.OBJKEYS
返回路径引用的对象中的键
语法
JSON.OBJKEYS key [path]
引入版本:1.0.0
复杂度摘要:O(N)
返回与给定路径表达式匹配的路径处的 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.OBJKEYS doc $..a 1) (nil) 2) 1) "b" 2) "c"
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 支持 |
✅ 灵活且每年一次 ✅ 免费和固定 |
返回值
RESP2
如果 path 是 JSONPath 表达式:
- 如果
key不存在,则为 简单错误。 - 如果
path没有匹配项,则为空 数组回复。 - 数组回复,其中每个数组元素对应一个匹配项:
- 如果匹配不是对象,则为
nil。 - 如果匹配的是对象,则 批量字符串回复 的 数组回复 包含对象的键名称。
如果 path 是旧路径表达式:
RESP3
如果 path 是 JSONPath 表达式:
- 如果
key不存在,则为 简单错误。 - 如果
path没有匹配项,则为空 数组回复。 - 数组回复,其中每个数组元素对应一个匹配项:
- 如果匹配不是对象,则为
nil。 - 如果匹配的是对象,则 批量字符串回复 的 数组回复 包含对象的键名称。
如果 path 是旧路径表达式:
参见
相关主题
资料来源:Redis 官方 JSON.OBJKEYS 文档;中文内容参考 Redis 文档许可。