Wenn Sie MySQL verwenden, können Sie JSON_VALID()
verwenden Funktion zum Testen, ob ein Zeichenfolgenausdruck gültiges JSON enthält.
Wenn der Ausdruck gültiges JSON enthält, JSON_VALID()
gibt 1
zurück , andernfalls wird 0
zurückgegeben .
Syntax
Die Syntax lautet wie folgt:
JSON_VALID(val)
Wobei val
ist der Wert, für den Sie auf gültiges JSON testen.
Beispiel 1 – Gültige JSON
Hier ist ein Beispiel, um zu demonstrieren, was passiert, wenn die Zeichenfolge gültiges JSON enthält.
SELECT JSON_VALID('{"Name": "Bart"}') AS Result;
Ergebnis:
+--------+ | Result | +--------+ | 1 | +--------+
Beispiel 2 – Ungültiges JSON
Hier ist ein Beispiel, um zu demonstrieren, was passiert, wenn die Zeichenfolge nicht tut gültiges JSON enthalten.
SELECT JSON_VALID('Name: Bart') AS Result;
Ergebnis:
+--------+ | Result | +--------+ | 0 | +--------+
Beispiel 3 – Ein Datenbankbeispiel
Bei dieser Datenbankabfrage werden die Ergebnisse nur dort zurückgegeben, wo Collections.Contents
Spalte enthält gültiges JSON.
Diese spezielle Spalte verwendet den Datentyp json
zum Speichern des JSON-Dokuments.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 1;
Ergebnis:
+------------+ | 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" } ] } ] | +------------+
Folgendes passiert, wenn wir die Anweisung so ändern, dass die Daten nur zurückgegeben werden, wenn dies isn't
der Fall ist gültiges JSON.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 0;
Ergebnis:
Empty set (0.00 sec)