JSON.GET
Syntax
JSON.GET key [INDENT indent] [NEWLINE newline] [SPACE space] [path [path ...]]
- Available in:
- Redis Stack / JSON 1.0.0
- Time complexity:
- O(N) when path is evaluated to a single value where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key
返回JSON序列化形式中path
处的值
必需的参数
key
是解析的关键。
可选参数
path
是JSONPath指定的。默认是根$
。JSON.GET接受多个path
参数。
Note:
当使用单个JSONPath时,匹配值的根是一个带有顶级数组的序列化JSON值的JSON字符串。 相比之下,传统路径返回单个值。
当使用多个JSONPath参数时,匹配值的根是一个具有顶级对象的JSON字符串,每个对象值都是序列化JSON值的顶级数组。 相反,如果所有路径都是旧路径,每个对象值都是单个序列化的JSON值。 如果有多个路径同时包含旧路径和JSONPath,返回值将符合JSONPath版本(值的数组)。
INDENT
设置嵌套级别的缩进字符串。
NEWLINE
设置每行末尾打印的字符串。
SPACE
设置在键和值之间放置的字符串。
Note:
通过以下示例使用redis-cli
生成格式化的JSON:
~/$ redis-cli --raw
redis> JSON.GET myjsonkey INDENT "\t" NEWLINE "\n" SPACE " " path.to.value[1]
返回
JSON.GET 返回一个表示字符串回复的 JSON 数组的批量字符串。 每个字符串是与路径匹配的每个 JSON 值的 JSON 序列化。 使用多个路径时,JSON.GET 返回一个表示具有字符串值的 JSON 对象的批量字符串。 每个字符串值是与路径匹配的每个 JSON 值的 JSON 序列化数组。 有关回复的更多信息,请参阅 Redis 序列化协议规范。
示例
Return the value at path
in JSON serialized form
创建一个JSON文档。
redis> JSON.SET doc $ '{"a":2, "b": 3, "nested": {"a": 4, "b": null}}'
OK
使用单个JSONPath(JSON数组批量字符串):
redis> JSON.GET doc $..b
"[3,null]"
使用至少一个JSONPath的多个路径返回一个JSON字符串,该字符串包含一个顶级对象,每个路径都有一个JSON值数组:
redis> JSON.GET doc ..a $..b
"{\"$..b\":[3,null],\"..a\":[2,4]}"