Når du bruger MySQL, kan du bruge JSON_VALID() funktion til at teste, om et strengudtryk indeholder gyldig JSON.
Hvis udtrykket indeholder gyldig JSON, JSON_VALID() returnerer 1 , ellers returnerer den 0 .
Syntaks
Syntaksen ser sådan ud:
JSON_VALID(val)
Hvor val er den værdi, som du tester for gyldig JSON.
Eksempel 1 – Gyldig JSON
Her er et eksempel for at demonstrere, hvad der sker, når strengen indeholder gyldig JSON.
SELECT JSON_VALID('{"Name": "Bart"}') AS Result;
Resultat:
+--------+ | Result | +--------+ | 1 | +--------+
Eksempel 2 – Ugyldig JSON
Her er et eksempel for at demonstrere, hvad der sker, når strengen ikke indeholder gyldig JSON.
SELECT JSON_VALID('Name: Bart') AS Result;
Resultat:
+--------+ | Result | +--------+ | 0 | +--------+
Eksempel 3 – Et databaseeksempel
I denne databaseforespørgsel returneres resultaterne kun, hvor Collections.Contents kolonne indeholder gyldig JSON.
Denne særlige kolonne bruger datatypen json for at gemme JSON-dokumentet.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 1;
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"
}
]
}
] |
+------------+
Her er, hvad der sker, hvis vi ændrer erklæringen til kun at returnere dataene, hvis de isn't gyldig JSON.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 0;
Resultat:
Empty set (0.00 sec)