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 Base de Dados SQL do Azure
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 SCALAR valor testa um documento JSON que contém apenas um valor escalar JSON ao nível superior. O IETF RFC 8259 permite qualquer valor JSON ao nível superior, por isso use VALUE para testar um documento JSON conforme com o IETF RFC 8259. O IETF RFC 4627 permite apenas um objeto JSON ou array ao nível superior.
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)