Знак ударения в пути JSON функций в MS SQL Ошибка причины сервера - PullRequest
0 голосов
/ 01 августа 2020

Мы храним некоторые JSON в нашей базе данных как NVARCHAR. Перед вставкой мы проверяем JSON с помощью функции «Is JSON». Проблема в том, что у нас есть JSON с акцентом в клавишах, таких как "Malārd". Is Json возвращает 1, что означает, что это действительный JSON, но когда мы пытаемся использовать его в пути, таком как '$ .Malārd', это вызовет ошибку ниже:

-- QUERY
SELECT JSON_VALUE(N'{"Malārd":1000}', N'$.Malārd')
-- OUTPUT
-- JSON path is not properly formatted. Unexpected character 'ā' is found at position 5

Если у меня есть к, я не буду вставлять символы акцента в клавиши, но я надеюсь найти для этого лучшее решение. в нашем проекте, который позволил клиентскому разработчику вставить и взять различные JSON модели.

1 Ответ

1 голос
/ 01 августа 2020

Вы должны заключить путь выражение в кавычки, если имя ключа начинается со знака доллара или содержит специальные символы:

SELECT JSON_VALUE(N'{"Malārd":1000}', N'$."Malārd"')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...