我在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}}}
答案 0 :(得分:2)
您需要 CAST 字符串为JSON。
试试这个:
UPDATE calculation
SET payment = JSON_ARRAY_APPEND(payment, '$', CAST('{"2018": {"1": {"payed": 0,"charge": 0}}}' as JSON));