JSON.STRAPPEND - Amazon ElastiCache

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

JSON.STRAPPEND

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

語法

JSON.STRAPPEND <key> [path] <json_string>
  • 金鑰 (必要) – JSON 文件類型的 Valkey 或 Redis OSS金鑰。

  • 路徑 (選用) – JSON 路徑。如果未提供,則預設為根。

  • json_string (必要) – 字串的JSON表示法。請注意,必須引用JSON字串。例如:'"string example"'。

傳回

如果路徑是增強型語法:

  • 整數陣列代表字串在每個路徑的新長度。

  • 如果路徑上的值不是字符串,則其對應的傳回值為 null。

  • SYNTAXERR 如果輸入 json 引數不是有效的JSON字串,則會出現錯誤。

  • 如果沒有路徑,會發生 NONEXISTENT 錯誤。

如果路徑是受限語法:

  • 整數,字串的新長度。

  • 如果選取多個字串值,該命令會傳回上次所更新字串的新長度。

  • 如果路徑上的值不是字串,會發生 WRONGTYPE 錯誤。

  • WRONGTYPE 如果輸入 json 引數不是有效的JSON字串,則會出現錯誤。

  • 如果沒有路徑,會發生 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