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