Als u SQL Server gebruikt, kunt u de ISJSON()
functie om te testen of een tekenreeksexpressie geldige JSON bevat.
Als de expressie geldige JSON bevat, ISJSON()
retourneert 1
, anders retourneert het 0
.
Syntaxis
De syntaxis gaat als volgt:
ISJSON ( expression )
Waar expression
is de tekenreeksexpressie waarvoor u test op geldige JSON.
Voorbeeld 1 – Geldige JSON
Hier is een voorbeeld om te demonstreren wat er gebeurt als de string geldige JSON bevat.
SELECT ISJSON('{"Name": "Bob"}') AS Result;
Resultaat:
+----------+ | Result | |----------| | 1 | +----------+
Voorbeeld 2 – Ongeldige JSON
Hier is een voorbeeld om te laten zien wat er gebeurt als de string niet geldige JSON bevatten.
SELECT ISJSON('Name: Bob') AS Result;
Resultaat:
+----------+ | Result | |----------| | 0 | +----------+
Voorbeeld 3 – Een voorwaardelijke verklaring
Hier is een basisvoorwaardelijk statement dat een ander resultaat oplevert, afhankelijk van of de string JSON bevat of niet.
DECLARE @data nvarchar(255); SET @data = '{"Name": "Bob"}'; IF (ISJSON(@data) > 0) SELECT 'Valid JSON' AS 'Result'; ELSE SELECT 'Invalid JSON' AS 'Result';
Resultaat:
+------------+ | Result | |------------| | Valid JSON | +------------+
Voorbeeld 4 – Een databasevoorbeeld
In deze databasequery worden de resultaten alleen geretourneerd waar de Collections.Contents
kolom bevat geldige JSON.
Deze specifieke kolom gebruikt het gegevenstype nvarchar(4000)
om het JSON-document op te slaan.
SELECT Contents FROM Collections WHERE ISJSON(Contents) > 0;
Resultaat:
+------------+ | 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" } ] } ] | +------------+