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)