Я знаю, что это должно быть просто, но я не могу понять, как избежать двойных кавычек внутри запроса mysql для манипулирования json.
У меня есть следующий пример:
SET @j = '{"4": 1, "0as@x"" : [1, 2, 3, 4], "b": [2, 3]}';
Обратите внимание на двойные кавычки внутри второго ключа: 0as@x"
Если я запускаю этот запрос: SELECT JSON_ARRAY_APPEND(@j, '$."0as@x\"', '2');
я получаю следующую ошибку:
Error Code: 3141. Invalid JSON text in argument 1 to function json_array_append: "Missing a colon after a name of object member." at position 16.
Все, что я хочу, это знать, как избежать двойных кавычек внутри имени переменной ключа объекта json.
Я также попытался удвоить кавычки """
с двумя обратными косыми чертами \\"
...
Не могли бы вы мне помочь?
Благодарю вас!
Позже ИЗМЕНИТЬ
В операторе set я избегал двойных кавычек с помощью \"
. Это делается сзади, если вы используете JSON_OBJECT
.
В конце концов я сбежал с помощью \\
двойных кавычек, и это сработало.
Окончательный код, который работает:
SET @j = JSON_OBJECT('4', 1, '0as@x"', '[1, 2, 3, 4]', 'b', '[2, 3]');
SELECT JSON_ARRAY_APPEND(@j, '$."0as@x\\""', 2);