

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# JSON.ARRINSERT
<a name="json-arrinsert"></a>

將一或多個值插入索引前路徑的陣列值。

語法

```
JSON.ARRINSERT <key> <path> <index> <json> [json ...]
```
+ key （必要） – JSON 文件類型的 Valkey 或 Redis OSS 金鑰。
+ path (必要) – JSON 路徑。
+ index (必要) – 插入值之前的陣列索引。
+ json (必要) – 要附加至陣列的 JSON 值。

**傳回**

如果路徑是增強型語法：
+ 整數陣列代表每個路徑的新陣列長度。
+ 如果值是空陣列，其相應的傳回值為 null。
+ 如果值不是陣列，其相應的傳回值為 null。
+ 如果索引引數超出範圍，會發生 `OUTOFBOUNDARIES` 錯誤。

如果路徑是受限語法：
+ 整數，新陣列長度。
+ 如果路徑上的值不是陣列，會發生 `WRONGTYPE` 錯誤。
+ 如果索引引數超出範圍，會發生 `OUTOFBOUNDARIES` 錯誤。

**範例**

 增強型路徑語法：

```
127.0.0.1:6379> JSON.SET k1 . '[[], ["a"], ["a", "b"]]'
OK
127.0.0.1:6379> JSON.ARRINSERT k1 $[*] 0 '"c"'
1) (integer) 1
2) (integer) 2
3) (integer) 3
127.0.0.1:6379> JSON.GET k1
"[[\"c\"],[\"c\",\"a\"],[\"c\",\"a\",\"b\"]]"
```

 受限路徑語法：

```
127.0.0.1:6379> JSON.SET k1 . '[[], ["a"], ["a", "b"]]'
OK
127.0.0.1:6379> JSON.ARRINSERT k1 . 0 '"c"'
(integer) 4
127.0.0.1:6379> JSON.GET k1
"[\"c\",[],[\"a\"],[\"a\",\"b\"]]"
```