MySQL JSON_ARRAY_APPEND删除不必要的\和“

时间:2018-04-11 11:39:45

标签: mysql json backslash

我在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}}}

1 个答案:

答案 0 :(得分:2)

您需要 CAST 字符串为JSON。

试试这个:

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