JSON.OBJLEN - Amazon ElastiCache for Redis
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China.

JSON.OBJLEN

Gets the number of keys in the object values at the path.

Syntax

JSON.OBJLEN <key> [path]
  • key (required) – A Redis key of JSON document type.

  • path (optional) – A JSON path. Defaults to the root if not provided.

Return

If the path is enhanced syntax:

  • Array of integers that represent the object length at each path.

  • If a value is not an object, its corresponding return value is null.

  • Null if the document key does not exist.

If the path is restricted syntax:

  • Integer, number of keys in the object.

  • If multiple objects are selected, the command returns the first object's length.

  • WRONGTYPE error if the value at the path is not an object.

  • WRONGTYPE error if the path does not exist.

  • Null if the document key does not exist.

Examples

Enhanced path syntax:

127.0.0.1:6379> JSON.SET k1 $ '{"a":{}, "b":{"a":"a"}, "c":{"a":"a", "b":"bb"}, "d":{"a":1, "b":"b", "c":{"a":3,"b":4}}, "e":1}' OK 127.0.0.1:6379> JSON.OBJLEN k1 $.a 1) (integer) 0 127.0.0.1:6379> JSON.OBJLEN k1 $.a.* (empty array) 127.0.0.1:6379> JSON.OBJLEN k1 $.b 1) (integer) 1 127.0.0.1:6379> JSON.OBJLEN k1 $.b.* 1) (nil) 127.0.0.1:6379> JSON.OBJLEN k1 $.c 1) (integer) 2 127.0.0.1:6379> JSON.OBJLEN k1 $.c.* 1) (nil) 2) (nil) 127.0.0.1:6379> JSON.OBJLEN k1 $.d 1) (integer) 3 127.0.0.1:6379> JSON.OBJLEN k1 $.d.* 1) (nil) 2) (nil) 3) (integer) 2 127.0.0.1:6379> JSON.OBJLEN k1 $.* 1) (integer) 0 2) (integer) 1 3) (integer) 2 4) (integer) 3 5) (nil)

Restricted path syntax:

127.0.0.1:6379> JSON.SET k1 . '{"a":{}, "b":{"a":"a"}, "c":{"a":"a", "b":"bb"}, "d":{"a":1, "b":"b", "c":{"a":3,"b":4}}, "e":1}' OK 127.0.0.1:6379> JSON.OBJLEN k1 .a (integer) 0 127.0.0.1:6379> JSON.OBJLEN k1 .a.* (error) NONEXISTENT JSON path does not exist 127.0.0.1:6379> JSON.OBJLEN k1 .b (integer) 1 127.0.0.1:6379> JSON.OBJLEN k1 .b.* (error) WRONGTYPE JSON element is not an object 127.0.0.1:6379> JSON.OBJLEN k1 .c (integer) 2 127.0.0.1:6379> JSON.OBJLEN k1 .c.* (error) WRONGTYPE JSON element is not an object 127.0.0.1:6379> JSON.OBJLEN k1 .d (integer) 3 127.0.0.1:6379> JSON.OBJLEN k1 .d.* (integer) 2 127.0.0.1:6379> JSON.OBJLEN k1 .* (integer) 0