MySQLを使用する場合は、JSON_VALID()を使用できます。 文字列式に有効なJSONが含まれているかどうかをテストする関数。
式に有効なJSONが含まれている場合、JSON_VALID() 1を返します 、それ以外の場合は、0を返します 。
構文
構文は次のようになります:
JSON_VALID(val)
valの場所 有効なJSONをテストする値です。
例1-有効なJSON
文字列に有効なJSONが含まれている場合に何が起こるかを示す例を次に示します。
SELECT JSON_VALID('{"Name": "Bart"}') AS Result;
結果:
+--------+ | Result | +--------+ | 1 | +--------+
例2–無効なJSON
文字列がない場合に何が起こるかを示す例を次に示します。 有効なJSONが含まれています。
SELECT JSON_VALID('Name: Bart') AS Result;
結果:
+--------+ | Result | +--------+ | 0 | +--------+
例3–データベースの例
このデータベースクエリでは、結果はCollections.Contentsの場所でのみ返されます 列に有効なJSONが含まれています。
この特定の列は、jsonのデータ型を使用します JSONドキュメントを保存します。
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 1;
結果:
+------------+
| 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"
}
]
}
] |
+------------+
isn't 有効なJSON。
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 0;
結果:
Empty set (0.00 sec)