Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2016 (13.x) и более поздних версий в
конечной точке аналитики
SQL Azure
Synapse Analytics
в хранилищеMicrosoft Fabricв
базе данных SQLMicrosoft
Fabric в предварительной версии Microsoft Fabric
Синтаксис ISJSON
проверяет, содержит ли строка допустимый JSON.
Соглашения о синтаксисе Transact-SQL
Syntax
ISJSON ( expression [, json_type_constraint] )
Arguments
expression
Строка для проверки.
json_type_constraint
Указывает тип JSON для возврата входных данных. Допустимые значения: VALUE
, ARRAY
или OBJECT
SCALAR
. Впервые представлено в SQL Server 2022 (16.x).
Note
Аргумент json_type_constraint не поддерживается в выделенных пулах Azure Synapse Analytics
Return value
Возвращает значение 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_type_constraint можно использовать для тестирования для документа IETF RFC 8259, соответствующего JSON, который содержит только скалярное значение JSON на верхнем уровне. Документ JSON, не содержащий скалярное значение JSON на верхнем уровне, соответствует IETF RFC 4627.
Не возвращает ошибок.
Remarks
ISJSON
не проверяет уникальность ключей на том же уровне.
Examples
Example 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
Example 2
В следующем примере возвращаются строки, в которых столбец json_col
содержит допустимые данные JSON.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
Example 3
В следующем примере возвращаются строки, в которых столбец json_col
содержит допустимое значение SCALAR JSON на высшем уровне.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
Example 4
В следующем примере возвращается значение 1, так как входные данные являются допустимым значением JSON — true.
SELECT ISJSON('true', VALUE)
Example 5
В следующем примере возвращается значение 0, так как входные данные являются недопустимым значением JSON.
SELECT ISJSON('test string', VALUE)
Example 6
В следующем примере возвращается значение 1, так как входные данные являются допустимым скаляром JSON согласно RFC 8259.
SELECT ISJSON('"test string"', SCALAR)