MySQL JSON_ARRAY_APPEND 删除不必要的 \ 和 "

MySQL JSON_ARRAY_APPEND Remove unnecessary \ and "

我有 mysql 这种 JSON 格式很好:

{"2017": {"1": {"payed": 0, "charge": 0}}}

现在我需要再添加一年 JSON 现在看起来像这样:

{"2017": {"1": {"payed": 0, "charge": 0}}, "2018": {"1": {"payed": 0, "charge": 0}}}

我尝试使用这个 MySQL 代码:

UPDATE calculation 
SET payment = JSON_ARRAY_APPEND(payment, '$', '{"2018": {"1": {"payed": 0,"charge": 0}}}');

我得到了这个:

[{"2017": {"1": {"payed": 0, "charge": 0}}}, "{\"2018\": {\"1\": {\"payed\": 0,\"charge\": 0}}}"]

所以你看到我有反斜杠 \ 并且需要删除它并且在开头和结尾也没有必要 " 所以如何删除它以获得所需的它看起来完全像这样:

{"2017": {"1": {"payed": 0, "charge": 0}}, "2018": {"1": {"payed": 0, "charge": 0}}}

您需要 CAST 字符串为 JSON。

试试这个:

UPDATE calculation 
SET payment = JSON_ARRAY_APPEND(payment, '$', CAST('{"2018": {"1": {"payed": 0,"charge": 0}}}' as JSON));