Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint in Microsoft Fabric
Warehouse em Microsoft Fabric
SQL database in Microsoft Fabric
A ISJSON sintaxe testa se uma cadeia de caracteres contém JSON válido.
Transact-SQL convenções de sintaxe
Syntax
ISJSON ( expression [, json_type_constraint] )
Arguments
expression
A cadeia de caracteres a ser testada.
json_type_constraint
Especifica o tipo JSON para fazer check-in da entrada. Os valores válidos são VALUE, ARRAY, OBJECT, ou SCALAR. Introduzido no SQL Server 2022 (16.x).
Note
O argumento json_type_constraint não é suportado nos pools dedicados do Azure Synapse Analytics
Valor de retorno
Retorna 1 se a cadeia de caracteres contiver JSON válido; caso contrário, retorna 0. Retorna NULL se expression for null.
Se a instrução omitir json_type_constraint, a função testa se a entrada é um objeto JSON válido ou matriz e retorna 1 de outra forma, ela retorna 0.
Se o json_type_constraint for especificado, a função verificará o tipo JSON da seguinte maneira:
| Value | Description |
|---|---|
VALUE |
Testa um valor JSON válido. Pode ser um objeto JSON, matriz, número, cadeia de caracteres ou um dos três valores literais (false, true, null) |
ARRAY |
Testes para uma matriz JSON válida |
OBJECT |
Testes para um objeto JSON válido |
SCALAR |
Testes para um escalar JSON válido – número ou cadeia de caracteres |
O valor de json_type_constraint SCALAR pode ser usado para testar o documento JSON compatível com IETF RFC 8259 que contém apenas um valor escalar JSON no nível superior. Um documento JSON que não contém um valor escalar JSON no nível superior está em conformidade com IETF RFC 4627.
Não retorna erros.
Remarks
ISJSON não verifica a singularidade das chaves no mesmo nível.
Examples
Exemplo 1
O exemplo a seguir executa um bloco de instrução condicionalmente se o valor @param do parâmetro contiver JSON válido.
DECLARE @param <data type>
SET @param = <value>
IF (ISJSON(@param) > 0)
BEGIN
-- Do something with the valid JSON value of @param.
END
Exemplo 2
O exemplo a seguir retorna linhas nas quais a coluna json_col contém JSON válido.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
Exemplo 3
O exemplo a seguir retorna linhas nas quais a coluna json_col contém um valor JSON SCALAR válido no nível superior.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
Exemplo 4
O exemplo a seguir retorna 1 já que a entrada é um valor JSON válido - true.
SELECT ISJSON('true', VALUE)
Exemplo 5
O exemplo a seguir retorna 0, pois a entrada é um valor JSON inválido.
SELECT ISJSON('test string', VALUE)
Exemplo 6
O exemplo a seguir retorna 1, pois a entrada é um escalar JSON válido de acordo com a RFC 8259.
SELECT ISJSON('"test string"', SCALAR)