Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2016 (13.x) и более поздние версии:
конечная точка аналитики SQL
Azure
Synapse Analytics в хранилище Microsoft
Fabric в базе данных SQL Microsoft
Fabric в Microsoft Fabric
Синтаксис ISJSON проверяет, содержит ли строка допустимый JSON.
Соглашения о синтаксисе Transact-SQL
Syntax
ISJSON ( expression [, json_type_constraint] )
Arguments
expression
Строка для проверки.
json_type_constraint
Указывает тип JSON для возврата входных данных. Допустимые значения: VALUE, ARRAYили OBJECTSCALAR. Впервые представлено в SQL Server 2022 (16.x).
Note
Аргумент json_type_constraint не поддерживается в выделенных пулах Azure Synapse Analytics
Возвращаемое значение
Возвращает значение 1 , если строка содержит допустимый JSON; в противном случае возвращается 0. Возвращает значение NULL , если выражение равно NULL.
Если инструкция не json_type_constraint, функция проверяет, является ли вход допустимый объект JSON или массив и возвращается 1 в противном случае, возвращается 0.
Если указана json_type_constraint , функция проверяет тип JSON следующим образом:
| Value | Description |
|---|---|
VALUE |
Проверяет на наличие допустимого значения JSON. Это может быть объект JSON, массив, число, строка или одно из трех литеральных значений (false, true, null). |
ARRAY |
Проверяет на наличие допустимого массива JSON |
OBJECT |
Проверяет на наличие допустимого объекта JSON |
SCALAR |
Тесты на наличие допустимого скаляра JSON — число или строка |
Значение SCALAR тестируется для JSON-документа, который содержит только JSON-скалярное значение на верхнем уровне. IETF RFC 8259 допускает любое значение JSON на верхнем уровне, поэтому используйте VALUE его для тестирования на соответствие JSON-документа, соответствующего IETF RFC 8259. IETF RFC 4627 допускает только JSON-объект или массив на верхнем уровне.
Не возвращает ошибок.
Remarks
ISJSON не проверяет уникальность ключей на том же уровне.
Examples
Пример 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)