Wanneer u MySQL gebruikt, kunt u de JSON_VALID() . gebruiken functie om te testen of een tekenreeksexpressie geldige JSON bevat.
Als de expressie geldige JSON bevat, JSON_VALID() retourneert 1 , anders retourneert het 0 .
Syntaxis
De syntaxis gaat als volgt:
JSON_VALID(val)
Waar val is de waarde waarvoor u test op geldige JSON.
Voorbeeld 1 – Geldige JSON
Hier is een voorbeeld om te demonstreren wat er gebeurt als de string geldige JSON bevat.
SELECT JSON_VALID('{"Name": "Bart"}') AS Result;
Resultaat:
+--------+ | Result | +--------+ | 1 | +--------+
Voorbeeld 2 – Ongeldige JSON
Hier is een voorbeeld om te laten zien wat er gebeurt als de string niet geldige JSON bevatten.
SELECT JSON_VALID('Name: Bart') AS Result;
Resultaat:
+--------+ | Result | +--------+ | 0 | +--------+
Voorbeeld 3 – Een databasevoorbeeld
In deze databasequery worden de resultaten alleen geretourneerd waar de Collections.Contents kolom bevat geldige JSON.
Deze specifieke kolom gebruikt het gegevenstype json om het JSON-document op te slaan.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 1;
Resultaat:
+------------+
| 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"
}
]
}
] |
+------------+
Dit is wat er gebeurt als we de instructie wijzigen om de gegevens alleen te retourneren als dit isn't geldige JSON.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 0;
Resultaat:
Empty set (0.00 sec)