JSON.STRLEN
JSON.STRLEN key [path]
- Available in:
- Redis Open Source / JSON 1.0.0
- Time complexity:
- O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key
- ACL categories:
-
@json,@read,@slow, - Compatibility:
- Redis Software and Redis Cloud compatibility
Returns the length of JSON strings at the paths matching a given path expression.
Required arguments
key
is a Redis key storing a value of type JSON.
Optional arguments
path
is either
- A JSONPath expression
- The root "
$", or any string that starts with "$." or "$[". - Resolves to all matching locations in
key.
- The root "
- A legacy path expression
- Any string that does not match the JSONPath syntax above.
- Allow the leading "
." to be omitted (for example, "name" and ".name" are equivalent). - Resolves to only the first matching location in
key.
Default: "." (legacy path pointing to the root of the document).
Examples
redis> JSON.SET doc $ '{"a":"foo", "nested": {"a": "hello"}, "nested2": {"a": 31}}'
OK
redis> JSON.STRLEN doc $..a
1) (integer) 3
2) (integer) 5
3) (nil)Redis Software and Redis Cloud compatibility
| Redis Software |
Redis Cloud |
Notes |
|---|---|---|
| ✅ Supported |
✅ Flexible & Annual ✅ Free & Fixed |
Return information
If path is a JSONPath expression:
- A simple error if
keydoes not exist. - An empty array reply if
pathhas no matches. - An array reply where each array element corresponds to one match:
nilif the match is not a string.- An integer reply: the length of the string.
If path is a legacy path expression:
nilifkeydoes not exist.- A simple error if
pathhas no matches. - A simple error if the first match is not a string.
- An integer reply: the length of the string at the first match.
See also
JSON.STRAPPEND | JSON.ARRLEN | JSON.OBJLEN