JSON.GET

Syntax
JSON.GET key [INDENT indent] [NEWLINE newline] [SPACE space] [paths
  [paths ...]]
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

Return the value at path in JSON serialized form

Examples

Required arguments

key

is key to parse.

Optional arguments

path

is JSONPath to specify. Default is root $. JSON.GET accepts multiple path arguments.

Note

When using a JSONPath, the root of the matching values is always an array. In contrast, the legacy path returns a single value. If there are multiple paths that include both legacy path and JSONPath, the returned value conforms to the JSONPath version (an array of values).

INDENT

sets the indentation string for nested levels.

NEWLINE

sets the string that's printed at the end of each line.

SPACE

sets the string that's put between a key and a value.

Note

Produce pretty-formatted JSON with redis-cli by following this example:

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

Return

JSON.GET returns an array of bulk string replies. Each string is the JSON serialization of each JSON value that matches a path. For more information about replies, see Redis serialization protocol specification.

Examples

Return the value at path in JSON serialized form

Create a JSON document.

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

With a single JSONPath (JSON array bulk string):

127.0.0.1:6379>  JSON.GET doc $..b
"[3,null]"

Using multiple paths with at least one JSONPath (map with array of JSON values per path):

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

See also

JSON.SET | JSON.MGET

Feedback

If you've found issues on this page, or have suggestions for improvement, please submit a request to merge or open an issue in the repository.