ISJSON (Transact-SQL)
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики Synapse Analytics Synapse Analyticsв хранилище Microsoft Fabricв Microsoft Fabric
Проверяет, что строка содержит допустимые данные JSON.
Соглашения о синтаксисе Transact-SQL
Синтаксис
ISJSON ( expression [, json_type_constraint] )
Аргументы
выражение
Строка для проверки.
json_type_constraint
Указывает тип JSON для возврата входных данных. Допустимые значения: VALUE, ARRAY, OBJECT или SCALAR. Впервые представлено в SQL Server 2022 (16.x).
Примечание.
Аргумент json_type_constraint не поддерживается в выделенных пулах Azure Synapse Analytics
Возвращаемое значение
Возвращает 1, если строка содержит допустимые данные JSON; в противном случае возвращает 0. Возвращает значение NULL, если выражение имеет значение NULL. Если инструкция пропускает json_type_constraint, функция проверяет, являются ли входные данные допустимым объектом JSON или массивом и возвращает значение 1. В противном случае возвращается значение 0. Если указан json_type_constraint, функция проверяет тип JSON следующим образом:
значение | Описание |
---|---|
ЗНАЧЕНИЕ | Проверяет на наличие допустимого значения JSON. Это может быть объект JSON, массив, число, строка или одно из трех литеральных значений (false, true, null). |
ARRAY | Проверяет на наличие допустимого массива JSON |
OBJECT | Проверяет на наличие допустимого объекта JSON |
SCALAR | Тесты на наличие допустимого скаляра JSON — число или строка |
SCALAR значения json_type_constraint можно использовать для тестирования документа JSON, соответствующего IETF RFC 8259, который содержит только скалярное значение JSON на верхнем уровне. Документ JSON, не содержащий скалярное значение JSON на верхнем уровне, соответствует IETF RFC 4627.
Не возвращает ошибок.
Замечания
ISJSON не проверяет уникальность ключей на том же уровне.
Примеры
Пример 1
В следующем примере выполняется условный блок операторов, если значение параметра @param
содержит допустимый код JSON.
DECLARE @param <data type>
SET @param = <value>
IF (ISJSON(@param) > 0)
BEGIN
-- Do something with the valid JSON value of @param.
END
Пример 2
В следующем примере возвращаются строки, в которых столбец json_col
содержит допустимые данные JSON.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
Пример 3
В следующем примере возвращаются строки, в которых столбец json_col
содержит допустимое значение SCALAR JSON на высшем уровне.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
Пример 4
В следующем примере возвращается значение 1, так как входные данные являются допустимым значением JSON — true.
SELECT ISJSON('true', VALUE)
Пример 5
В следующем примере возвращается значение 0, так как входные данные являются недопустимым значением JSON.
SELECT ISJSON('test string', VALUE)
Пример 6
В следующем примере возвращается значение 1, так как входные данные являются допустимым скаляром JSON согласно RFC 8259.
SELECT ISJSON('"test string"', SCALAR)
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по