*Redis JSON.GET 命令

JSON.GET 在 RedisJSON 中获取指定路径的 JSON 值。


*语法

JSON.GET key [path] [INDENT indent] [NEWLINE newline] [SPACE space] [NOESCAPE]

*参数说明

参数 类型 必填 说明
key String JSON 文档键名
path String JSONPath 路径,默认根路径 $
INDENT String 缩进字符
NEWLINE String 换行字符
SPACE String 空格字符
NOESCAPE Flag 禁用 Unicode 转义

*返回值

  • String:JSON 值的字符串表示
  • Nil:路径不存在

*时间复杂度

O(N),N 为返回的 JSON 值大小


*示例

*获取整个文档

> JSON.SET doc $ '{"a": 1, "b": {"c": 2}}'
OK
> JSON.GET doc
"{\"a\":1,\"b\":{\"c\":2}}"

*获取路径

> JSON.GET doc $.b
"{\"c\":2}"
> JSON.GET doc $.b.c
"2"

*格式化输出

> JSON.GET doc $ INDENT "  " NEWLINE "\n" SPACE " "
"{\n  \"a\": 1,\n  \"b\": {\n    \"c\": 2\n  }\n}"

*常见错误

错误 原因 解决
ERR key does not exist key 不存在 确认 key 存在

*最佳实践

  • 使用 JSONPath 精确定位需要的值
  • 使用 NOESCAPE 处理中文内容
  • 配合格式化参数提高可读性

*FAQ

Q1: 可以获取多个路径吗? A: 可以,提供多个路径返回多个值。

Q2: 路径不存在会怎样? A: 返回 nil。

Q3: 返回的是字符串吗? A: 是的,返回 JSON 的字符串表示,客户端需要解析。