Quando usi MySQL, puoi usare JSON_VALID()
funzione per verificare se un'espressione stringa contiene o meno un JSON valido.
Se l'espressione contiene JSON valido, JSON_VALID()
restituisce 1
, altrimenti restituisce 0
.
Sintassi
La sintassi è questa:
JSON_VALID(val)
Dove val
è il valore per il quale stai testando un JSON valido.
Esempio 1:JSON valido
Ecco un esempio per dimostrare cosa succede quando la stringa contiene un codice JSON valido.
SELECT JSON_VALID('{"Name": "Bart"}') AS Result;
Risultato:
+--------+ | Result | +--------+ | 1 | +--------+
Esempio 2:JSON non valido
Ecco un esempio per dimostrare cosa succede quando la stringa non contengono JSON valido.
SELECT JSON_VALID('Name: Bart') AS Result;
Risultato:
+--------+ | Result | +--------+ | 0 | +--------+
Esempio 3:un esempio di database
In questa query del database, i risultati vengono restituiti solo dove Collections.Contents
la colonna contiene JSON valido.
Questa particolare colonna utilizza un tipo di dati di json
per memorizzare il documento JSON.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 1;
Risultato:
+------------+ | 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" } ] } ] | +------------+
Ecco cosa succede se cambiamo l'istruzione per restituire i dati solo se isn't
JSON valido.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 0;
Risultato:
Empty set (0.00 sec)