JSON.GET

语法
JSON.GET key [INDENT indent] [NEWLINE newline] [SPACE space] [path
  [path ...]]
可用版本
Redis Open Source / JSON 1.0.0
时间复杂度
当 path 计算为单个值时为 O(N),其中 N 是值的大小;当 path 计算为多个值时为 O(N),其中 N 是键的大小
ACL 类别
@json @read @slow

以 JSON 序列化形式返回 `path` 指定位置的值

示例

必需参数

key

要解析的键。

可选参数

path

指定 JSONPath。默认为根路径 `$`。JSON.GET 接受多个 `path` 参数。

注意

当使用单个 JSONPath 时,匹配值的根是一个 JSON 字符串,其中包含一个顶级**数组**,数组元素是序列化的 JSON 值。相比之下,传统路径返回单个值。

当使用多个 JSONPath 参数时,匹配值的根是一个 JSON 字符串,其中包含一个顶级**对象**,每个对象值都是一个序列化的 JSON 值顶级数组。相比之下,如果所有路径都是传统路径,则每个对象值是一个单个序列化的 JSON 值。如果存在包含传统路径和 JSONPath 的多个路径,则返回值遵循 JSONPath 版本(值的数组)。

INDENT

设置嵌套级别的缩进字符串。

NEWLINE

设置在每行末尾打印的字符串。

SPACE

设置键和值之间放置的字符串。

注意

按照此示例使用 `redis-cli` 生成漂亮格式的 JSON

~/$ redis-cli --raw
redis> JSON.GET myjsonkey INDENT "\t" NEWLINE "\n" SPACE " " path.to.value[1]

返回值

JSON.GET 返回一个 bulk string,表示一个包含字符串回复的 JSON 数组。每个字符串是与路径匹配的每个 JSON 值的 JSON 序列化结果。使用多个路径时,JSON.GET 返回一个 bulk string,表示一个包含字符串值的 JSON 对象。每个字符串值都是与路径匹配的每个 JSON 值的 JSON 序列化数组。有关回复的更多信息,请参阅 Redis 序列化协议规范

示例

以 JSON 序列化形式返回 `path` 指定位置的值

创建一个 JSON 文档。

redis> JSON.SET doc $ '{"a":2, "b": 3, "nested": {"a": 4, "b": null}}'
OK

使用单个 JSONPath(JSON 数组 bulk string)

redis>  JSON.GET doc $..b
"[3,null]"

使用包含至少一个 JSONPath 的多个路径时,返回一个包含顶级对象的 JSON 字符串,每个路径对应一个 JSON 值数组

redis> JSON.GET doc ..a $..b
"{\"$..b\":[3,null],\"..a\":[2,4]}"

另请参阅

JSON.SET | JSON.MGET


评价此页面
返回顶部 ↑
© . This site is unofficial and not affiliated with Redis, Inc.