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"
}
]
}
] |
+------------+