Při použití serveru SQL Server můžete použít ISJSON() funkce pro testování, zda řetězcový výraz obsahuje platný JSON.
Pokud výraz obsahuje platný JSON, ISJSON() vrátí 1 , jinak vrátí 0 .
Syntaxe
Syntaxe vypadá takto:
ISJSON ( expression )
Kde expression je řetězcový výraz, pro který testujete platný JSON.
Příklad 1 – platný JSON
Zde je příklad demonstrující, co se stane, když řetězec obsahuje platný JSON.
SELECT ISJSON('{"Name": "Bob"}') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
Příklad 2 – Neplatný JSON
Zde je příklad, který demonstruje, co se stane, když řetězec není obsahovat platný JSON.
SELECT ISJSON('Name: Bob') AS Result;
Výsledek:
+----------+ | Result | |----------| | 0 | +----------+
Příklad 3 – Podmíněné prohlášení
Zde je základní podmíněný příkaz, jehož výstupem je jiný výsledek v závislosti na tom, zda řetězec obsahuje JSON nebo ne.
DECLARE @data nvarchar(255);
SET @data = '{"Name": "Bob"}';
IF (ISJSON(@data) > 0)
SELECT 'Valid JSON' AS 'Result';
ELSE
SELECT 'Invalid JSON' AS 'Result';
Výsledek:
+------------+ | Result | |------------| | Valid JSON | +------------+
Příklad 4 – Příklad databáze
V tomto databázovém dotazu jsou výsledky vráceny pouze tam, kde je Collections.Contents sloupec obsahuje platný JSON.
Tento konkrétní sloupec používá datový typ nvarchar(4000) k uložení dokumentu JSON.
SELECT Contents FROM Collections WHERE ISJSON(Contents) > 0;
Výsledek:
+------------+
| 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"
}
]
}
] |
+------------+