Ao usar o SQL Server, você pode usar o
ISJSON() função para testar se uma expressão de string contém ou não um JSON válido. Se a expressão contiver JSON válido,
ISJSON() retorna 1 , caso contrário, ele retornará 0 . Sintaxe
A sintaxe fica assim:
ISJSON ( expression )
Onde
expression é a expressão de string para a qual você está testando um JSON válido. Exemplo 1 – JSON válido
Aqui está um exemplo para demonstrar o que acontece quando a string contém um JSON válido.
SELECT ISJSON('{"Name": "Bob"}') AS Result;
Resultado:
+----------+ | Result | |----------| | 1 | +----------+
Exemplo 2 – JSON inválido
Aqui está um exemplo para demonstrar o que acontece quando a string não contêm JSON válido.
SELECT ISJSON('Name: Bob') AS Result;
Resultado:
+----------+ | Result | |----------| | 0 | +----------+
Exemplo 3 – Uma declaração condicional
Aqui está uma instrução condicional básica que gera um resultado diferente, dependendo se a string contém JSON ou não.
DECLARE @data nvarchar(255);
SET @data = '{"Name": "Bob"}';
IF (ISJSON(@data) > 0)
SELECT 'Valid JSON' AS 'Result';
ELSE
SELECT 'Invalid JSON' AS 'Result';
Resultado:
+------------+ | Result | |------------| | Valid JSON | +------------+
Exemplo 4 – Um exemplo de banco de dados
Nesta consulta de banco de dados, os resultados são retornados apenas onde o
Collections.Contents coluna contém JSON válido. Esta coluna em particular usa um tipo de dados de
nvarchar(4000) para armazenar o documento JSON. SELECT Contents FROM Collections WHERE ISJSON(Contents) > 0;
Resultado:
+------------+
| Contents |
|------------|
| [
{
"ArtistName": "AC/DC",
"Albums": [
{
"AlbumName": "Powerage"
}
]
},
{
"ArtistName": "Devin Townsend",
"Albums": [
{
"AlbumName": "Ziltoid the Omniscient"
},
{
"AlbumName": "Casualties of Cool"
},
{
"AlbumName": "Epicloud"
}
]
},
{
"ArtistName": "Iron Maiden",
"Albums": [
{
"AlbumName": "Powerslave"
},
{
"AlbumName": "Somewhere in Time"
},
{
"AlbumName": "Piece of Mind"
},
{
"AlbumName": "Killers"
},
{
"AlbumName": "No Prayer for the Dying"
}
]
}
] |
+------------+