Når du bruger SQL Server, kan du bruge ISJSON()
funktion til at teste, om et strengudtryk indeholder gyldig JSON.
Hvis udtrykket indeholder gyldig JSON, ISJSON()
returnerer 1
, ellers returnerer den 0
.
Syntaks
Syntaksen ser sådan ud:
ISJSON ( expression )
Hvor expression
er det strengudtryk, som du tester for gyldig JSON.
Eksempel 1 – Gyldig JSON
Her er et eksempel for at demonstrere, hvad der sker, når strengen indeholder gyldig JSON.
SELECT ISJSON('{"Name": "Bob"}') AS Result;
Resultat:
+----------+ | Result | |----------| | 1 | +----------+
Eksempel 2 – Ugyldig JSON
Her er et eksempel for at demonstrere, hvad der sker, når strengen ikke indeholder gyldig JSON.
SELECT ISJSON('Name: Bob') AS Result;
Resultat:
+----------+ | Result | |----------| | 0 | +----------+
Eksempel 3 – En betinget erklæring
Her er en grundlæggende betinget erklæring, der udsender et andet resultat, afhængigt af om strengen indeholder JSON eller ej.
DECLARE @data nvarchar(255); SET @data = '{"Name": "Bob"}'; IF (ISJSON(@data) > 0) SELECT 'Valid JSON' AS 'Result'; ELSE SELECT 'Invalid JSON' AS 'Result';
Resultat:
+------------+ | Result | |------------| | Valid JSON | +------------+
Eksempel 4 – Et databaseeksempel
I denne databaseforespørgsel returneres resultaterne kun, hvor Collections.Contents
kolonne indeholder gyldig JSON.
Denne særlige kolonne bruger en datatype nvarchar(4000)
for at gemme JSON-dokumentet.
SELECT Contents FROM Collections WHERE ISJSON(Contents) > 0;
Resultat:
+------------+ | 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" } ] } ] | +------------+