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)