

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# JSON.OBJKEYS
<a name="json-objkeys"></a>

获取路径对象值中的键名。

语法

```
JSON.OBJKEYS <key> [path]
```
+ key（必需）– JSON 文档类型的键
+ path（可选）– 一个 JSON 路径。如果未提供，则默认为根目录

**Return**

如果路径是增强的语法：
+ 批量字符串数组的数组。每个元素都是匹配对象中的键数组。
+ 如果值不是对象，其对应的返回值为空值。
+ 如果文档键不存在，则为 Null。

如果路径是受限的语法：
+ 批量字符串数组。每个元素都是对象中的键名称。
+ 如果选择了多个对象，该命令将返回第一个对象的键。
+ 如果路径中的值不是对象，则为 `WRONGTYPE` 错误。
+ 如果路径不存在，则为 `WRONGTYPE` 错误。
+ 如果文档键不存在，则为 Null。

**示例**

 增强的路径语法：

```
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.OBJKEYS k1 $.*
1) (empty array)
2) 1) "a"
3) 1) "a"
   2) "b"
4) 1) "a"
   2) "b"
   3) "c"
5) (empty array)
127.0.0.1:6379> JSON.OBJKEYS k1 $.d
1) 1) "a"
   2) "b"
   3) "c"
```

 受限的路径语法：

```
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.OBJKEYS k1 .*
1) "a"
127.0.0.1:6379> JSON.OBJKEYS k1 .d
1) "a"
2) "b"
3) "c"
```