--- acl_categories: - '@json' - '@read' - '@slow' arguments: - name: key type: key - name: path optional: true type: string categories: - docs - develop - stack - oss - rs - rc - oss - kubernetes - clients 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 deprecated_since: '2.6' description: Returns the JSON value at path in Redis Serialization Protocol (RESP) group: json hidden: false linkTitle: JSON.RESP module: JSON railroad_diagram: /images/railroad/json.resp.svg since: 1.0.0 stack_path: docs/data-types/json summary: Returns the JSON value at path in Redis Serialization Protocol (RESP) syntax_fmt: JSON.RESP key [path] title: JSON.RESP --- Return the JSON in `key` in [Redis serialization protocol specification]({{< relref "/develop/reference/protocol-spec" >}}) form [Examples](#examples) ## Required arguments
key is key to parse.
## Optional arguments
path is JSONPath to specify. Default is root `$`. This command uses the following mapping from JSON to RESP: * JSON `null` maps to the bulk string reply. * JSON `false` and `true` values map to the simple string reply. * JSON number maps to the integer reply or bulk string reply, depending on type. * JSON string maps to the bulk string reply. * JSON array is represented as an array reply in which the first element is the simple string reply `[`, followed by the array's elements. * JSON object is represented as an array reply in which the first element is the simple string reply `{`. Each successive entry represents a key-value pair as a two-entry array reply of the bulk string reply. For more information about replies, see [Redis serialization protocol specification]({{< relref "/develop/reference/protocol-spec" >}}).
## Examples
Return an array of RESP details about a document Create a JSON document. {{< highlight bash >}} redis> JSON.SET item:2 $ '{"name":"Wireless earbuds","description":"Wireless Bluetooth in-ear headphones","connection":{"wireless":true,"type":"Bluetooth"},"price":64.99,"stock":17,"colors":["black","white"], "max_level":[80, 100, 120]}' OK {{< / highlight >}} Get all RESP details about the document. {{< highlight bash >}} redis> JSON.RESP item:2 1) { 2) "name" 3) "Wireless earbuds" 4) "description" 5) "Wireless Bluetooth in-ear headphones" 6) "connection" 7) 1) { 2) "wireless" 3) true 4) "type" 5) "Bluetooth" 8) "price" 9) "64.989999999999995" 10) "stock" 11) (integer) 17 12) "colors" 13) 1) [ 2) "black" 3) "white" 14) "max_level" 15) 1) [ 2) (integer) 80 3) (integer) 100 4) (integer) 120 {{< / highlight >}}
## Redis Software and Redis Cloud compatibility | Redis
Software | Redis
Cloud | Notes | |:----------------------|:-----------------|:------| | ✅ Supported
| ✅ Flexible & Annual
✅ Free & Fixed | | ## Return information {{< multitabs id="json-resp-return-info" tab1="RESP2" tab2="RESP3" >}} [Array reply]({{< relref "/develop/reference/protocol-spec#arrays" >}}) representing the JSON value in RESP form, as detailed in the [Redis serialization protocol specification]({{< relref "/develop/reference/protocol-spec" >}}). The mapping from JSON to RESP follows the rules described in the command arguments. -tab-sep- [Array reply]({{< relref "/develop/reference/protocol-spec#arrays" >}}) representing the JSON value in RESP form, as detailed in the [Redis serialization protocol specification]({{< relref "/develop/reference/protocol-spec" >}}). The mapping from JSON to RESP follows the rules described in the command arguments. {{< /multitabs >}} ## See also [`JSON.SET`]({{< relref "commands/json.set/" >}}) | [`JSON.ARRLEN`]({{< relref "commands/json.arrlen/" >}}) ## Related topics * [RedisJSON]({{< relref "/develop/data-types/json/" >}}) * [Index and search JSON documents]({{< relref "/develop/ai/search-and-query/indexing/" >}})