sql >> Databasteknik >  >> RDS >> Sqlserver

ISJSON() Exempel i SQL Server (T-SQL)

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


  1. SQLite-undantag vid försök att ta bort rad

  2. Vad är STATISTICS IO i SQL Server?

  3. Viktiga teknikförändringar i E-Business Suite 12.2

  4. AOL/J Setup Test Suite