

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

# JSON.STRAPPEND
<a name="json-strappend"></a>

將字串附加至路徑的 JSON 字串。

語法

```
JSON.STRAPPEND <key> [path] <json_string>
```
+ key （必要） – JSON 文件類型的金鑰
+ path （選用） – JSON 路徑。如果未提供，則預設為根
+ json\$1string （必要） – 字串的 JSON 表示法。請注意，JSON 字串必須加上引號，即 '"foo"'。

**傳回**

如果路徑是增強型語法：
+ 整數陣列，代表每個路徑上字串的新長度。
+ 如果路徑上的值不是字符串，則其對應的傳回值為 null。
+ `SYNTAXERR `如果輸入 json 引數不是有效的 JSON 字串則發生錯誤。
+ `NONEXISTENT `如果路徑不存在則發生錯誤。

如果路徑是受限語法：
+ 整數，字串的新長度。
+ 如果選取多個字串值，該命令會傳回上次所更新字串的新長度。
+ 如果路徑上的值不是字串，會發生 `WRONGTYPE` 錯誤。
+ 如果輸入 json 引數不是有效 JSON 字串，會發生 `WRONGTYPE` 錯誤。
+ 如果沒有路徑，會發生 `NONEXISTENT` 錯誤。

**範例**

 增強型路徑語法：

```
127.0.0.1:6379> JSON.SET k1 $ '{"a":{"a":"a"}, "b":{"a":"a", "b":1}, "c":{"a":"a", "b":"bb"}, "d":{"a":1, "b":"b", "c":3}}'
OK
127.0.0.1:6379> JSON.STRAPPEND k1 $.a.a '"a"'
1) (integer) 2
127.0.0.1:6379> JSON.STRAPPEND k1 $.a.* '"a"'
1) (integer) 3
127.0.0.1:6379> JSON.STRAPPEND k1 $.b.* '"a"'
1) (integer) 2
2) (nil)
127.0.0.1:6379> JSON.STRAPPEND k1 $.c.* '"a"'
1) (integer) 2
2) (integer) 3
127.0.0.1:6379> JSON.STRAPPEND k1 $.c.b '"a"'
1) (integer) 4
127.0.0.1:6379> JSON.STRAPPEND k1 $.d.* '"a"'
1) (nil)
2) (integer) 2
3) (nil)
```

 受限路徑語法：

```
127.0.0.1:6379> JSON.SET k1 . '{"a":{"a":"a"}, "b":{"a":"a", "b":1}, "c":{"a":"a", "b":"bb"}, "d":{"a":1, "b":"b", "c":3}}'
OK
127.0.0.1:6379> JSON.STRAPPEND k1 .a.a '"a"'
(integer) 2
127.0.0.1:6379> JSON.STRAPPEND k1 .a.* '"a"'
(integer) 3
127.0.0.1:6379> JSON.STRAPPEND k1 .b.* '"a"'
(integer) 2
127.0.0.1:6379> JSON.STRAPPEND k1 .c.* '"a"'
(integer) 3
127.0.0.1:6379> JSON.STRAPPEND k1 .c.b '"a"'
(integer) 4
127.0.0.1:6379> JSON.STRAPPEND k1 .d.* '"a"'
(integer) 2
```