Back to Redis

JSON.OBJKEYS

content/commands/json.objkeys.md

latest2.8 KB
Original Source

Return the keys in the object that's referenced by path

Examples

Required arguments

<details open><summary><code>key</code></summary>

is key to parse. Returns null for nonexistent keys.

</details>

Optional arguments

<details open><summary><code>path</code></summary>

is JSONPath to specify. Default is root $. Returns null for nonexistant path.

</details>

Examples

{{< highlight bash >}} redis> JSON.SET doc $ '{"a":[3], "nested": {"a": {"b":2, "c": 1}}}' OK redis> JSON.OBJKEYS doc $..a

  1. (nil)
    1. "b"
    2. "c" {{< / highlight >}}

Redis Software and Redis Cloud compatibility

| Redis Software | Redis Cloud | <span style="min-width: 9em; display: table-cell">Notes</span> | |:----------------------|:-----------------|:------| | <span title="Supported">✅ Supported</span> | <span title="Supported">✅ Flexible & Annual</span> <span title="Supported">✅ Free & Fixed</nobr></span> | |

Return information

{{< multitabs id="json-objkeys-return-info" tab1="RESP2" tab2="RESP3" >}}

With $-based path argument: [Array reply]({{< relref "/develop/reference/protocol-spec#arrays" >}}) of [array replies]({{< relref "/develop/reference/protocol-spec#arrays" >}}) of [bulk string replies]({{< relref "/develop/reference/protocol-spec#bulk-strings" >}}), where each nested array contains the key names in the object, or null if the matching value is not an object.

With .-based path argument: [Array reply]({{< relref "/develop/reference/protocol-spec#arrays" >}}) of [bulk string replies]({{< relref "/develop/reference/protocol-spec#bulk-strings" >}}) containing the key names in the object, or [null reply]({{< relref "/develop/reference/protocol-spec#nulls" >}}) if the matching value is not an object.

-tab-sep-

With $-based path argument (default): [Array reply]({{< relref "/develop/reference/protocol-spec#arrays" >}}) of [array replies]({{< relref "/develop/reference/protocol-spec#arrays" >}}) of [bulk string replies]({{< relref "/develop/reference/protocol-spec#bulk-strings" >}}), where each nested array contains the key names in the object, or null if the matching value is not an object.

With .-based path argument: [Array reply]({{< relref "/develop/reference/protocol-spec#arrays" >}}) of [bulk string replies]({{< relref "/develop/reference/protocol-spec#bulk-strings" >}}) containing the key names in the object, or [null reply]({{< relref "/develop/reference/protocol-spec#nulls" >}}) if the matching value is not an object.

{{< /multitabs >}}

See also

[JSON.ARRINDEX]({{< relref "commands/json.arrindex/" >}}) | [JSON.ARRINSERT]({{< relref "commands/json.arrinsert/" >}})

  • [RedisJSON]({{< relref "/develop/data-types/json/" >}})
  • [Index and search JSON documents]({{< relref "/develop/ai/search-and-query/indexing/" >}})