

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

# JSON.TOGGLE
<a name="json-toggle"></a>

在路径的 true 和 false 之间切换布尔值。

语法

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

**Return**

如果路径是增强的语法：
+ 表示每个路径的结果布尔值的整数数组（0 – false, 1 – true）。
+ 如果值不是布尔值，其对应的返回值为 Null。
+ 如果文档键不存在，则为 `NONEXISTENT`。

如果路径是受限的语法：
+ 表示结果布尔值的字符串 （"true"/"false")。
+ 如果文档键不存在，则为 `NONEXISTENT`。
+ 如果路径中的值不是布尔值，则为 `WRONGTYPE` 错误。

**示例**

 增强的路径语法：

```
127.0.0.1:6379> JSON.SET k1 . '{"a":true, "b":false, "c":1, "d":null, "e":"foo", "f":[], "g":{}}'
OK
127.0.0.1:6379> JSON.TOGGLE k1 $.*
1) (integer) 0
2) (integer) 1
3) (nil)
4) (nil)
5) (nil)
6) (nil)
7) (nil)
127.0.0.1:6379> JSON.TOGGLE k1 $.*
1) (integer) 1
2) (integer) 0
3) (nil)
4) (nil)
5) (nil)
6) (nil)
7) (nil)
```

 受限的路径语法：

```
127.0.0.1:6379> JSON.SET k1 . true
OK
127.0.0.1:6379> JSON.TOGGLE k1
"false"
127.0.0.1:6379> JSON.TOGGLE k1
"true"

127.0.0.1:6379> JSON.SET k2 . '{"isAvailable": false}'
OK
127.0.0.1:6379> JSON.TOGGLE k2 .isAvailable
"true"
127.0.0.1:6379> JSON.TOGGLE k2 .isAvailable
"false"
```