JSON.STRLEN

用法
JSON.STRLEN key [ path ]
复杂度
O(N),其中 N 是路径匹配到的字符串值的数量。
模块
valkey-json
模块版本起始
1.0.0
ACL 类别
@read, @fast, @json

获取路径上 JSON 字符串值的长度。

示例

增强路径语法

127.0.0.1:6379> JSON.SET k1 $ '{"a":{"a":"a"}, "b":{"a":"a", "b":1}, "c":{"a":"a", "b":"bb"}, "d":{"a":1, "b":"b", "c":3}}'
OK
127.0.0.1:6379> JSON.STRLEN k1 $.a.a
1) (integer) 1
127.0.0.1:6379> JSON.STRLEN k1 $.a.*
1) (integer) 1
127.0.0.1:6379> JSON.STRLEN k1 $.c.*
1) (integer) 1
2) (integer) 2
127.0.0.1:6379> JSON.STRLEN k1 $.c.b
1) (integer) 2
127.0.0.1:6379> JSON.STRLEN k1 $.d.*
1) (nil)
2) (integer) 1
3) (nil)

受限路径语法

127.0.0.1:6379> JSON.SET k1 $ '{"a":{"a":"a"}, "b":{"a":"a", "b":1}, "c":{"a":"a", "b":"bb"}, "d":{"a":1, "b":"b", "c":3}}'
OK
127.0.0.1:6379> JSON.STRLEN k1 .a.a
(integer) 1
127.0.0.1:6379> JSON.STRLEN k1 .a.*
(integer) 1
127.0.0.1:6379> JSON.STRLEN k1 .c.*
(integer) 1
127.0.0.1:6379> JSON.STRLEN k1 .c.b
(integer) 2
127.0.0.1:6379> JSON.STRLEN k1 .d.*
(integer) 1

RESP2 回复

  • 如果路径是增强语法

    • 数组回复:表示每个路径上字符串值长度的整数数组。

    • 空回复:对于值不是字符串的每个路径。

    • 空回复:如果文档键不存在。

  • 如果路径是受限语法

    • 整数回复:字符串的长度。

    • 整数回复:如果选择了多个字符串值,返回第一个字符串的长度。

    • 空回复:如果文档键不存在。

  • 简单错误回复:

    • 如果路径上的值不是字符串(仅限于受限语法)。

    • 如果路径不存在(仅限于受限语法)。

RESP3 回复

  • 如果路径是增强语法

  • 如果路径是受限语法

  • 简单错误回复:

    • 如果路径上的值不是字符串(仅限于受限语法)。

    • 如果路径不存在(仅限于受限语法)。