När du använder SQL Server kan du använda ISJSON() funktion för att testa om ett stränguttryck innehåller giltig JSON eller inte.
Om uttrycket innehåller giltig JSON, ISJSON() returnerar 1 , annars returnerar den 0 .
Syntax
Syntaxen ser ut så här:
ISJSON ( expression )
Där expression är stränguttrycket som du testar för giltig JSON.
Exempel 1 – Giltig JSON
Här är ett exempel för att visa vad som händer när strängen innehåller giltig JSON.
SELECT ISJSON('{"Name": "Bob"}') AS Result;
Resultat:
+----------+ | Result | |----------| | 1 | +----------+
Exempel 2 – Ogiltig JSON
Här är ett exempel för att visa vad som händer när strängen inte gör det innehåller giltig JSON.
SELECT ISJSON('Name: Bob') AS Result;
Resultat:
+----------+ | Result | |----------| | 0 | +----------+
Exempel 3 – Ett villkorligt uttalande
Här är en grundläggande villkorssats som ger ett annat resultat, beroende på om strängen innehåller JSON eller inte.
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 | +------------+
Exempel 4 – Ett databasexempel
I den här databasfrågan returneras resultaten endast där Collections.Contents kolumnen innehåller giltig JSON.
Den här specifika kolumnen använder datatypen nvarchar(4000) för att lagra 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"
}
]
}
] |
+------------+