SQL Serverを使用する場合は、ISJSON()を使用できます。 文字列式に有効なJSONが含まれているかどうかをテストする関数。
式に有効なJSONが含まれている場合、ISJSON() 1を返します 、それ以外の場合は、0を返します 。
構文
構文は次のようになります:
ISJSON ( expression )
expressionの場所 は、有効なJSONをテストするための文字列式です。
例1-有効なJSON
文字列に有効なJSONが含まれている場合に何が起こるかを示す例を次に示します。
SELECT ISJSON('{"Name": "Bob"}') AS Result;
結果:
+----------+ | Result | |----------| | 1 | +----------+
例2–無効なJSON
文字列がない場合に何が起こるかを示す例を次に示します。 有効なJSONが含まれています。
SELECT ISJSON('Name: Bob') AS Result;
結果:
+----------+ | Result | |----------| | 0 | +----------+
例3–条件付きステートメント
文字列にJSONが含まれているかどうかに応じて、異なる結果を出力する基本的な条件ステートメントを次に示します。
DECLARE @data nvarchar(255);
SET @data = '{"Name": "Bob"}';
IF (ISJSON(@data) > 0)
SELECT 'Valid JSON' AS 'Result';
ELSE
SELECT 'Invalid JSON' AS 'Result';
結果:
+------------+ | Result | |------------| | Valid JSON | +------------+
例4–データベースの例
このデータベースクエリでは、結果はCollections.Contentsの場所でのみ返されます 列に有効なJSONが含まれています。
この特定の列は、nvarchar(4000)のデータ型を使用します JSONドキュメントを保存します。
SELECT Contents FROM Collections WHERE ISJSON(Contents) > 0;
結果:
+------------+
| 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"
}
]
}
] |
+------------+