Когато използвате MySQL, можете да използвате JSON_VALID()
функция за проверка дали низовият израз съдържа валиден JSON.
Ако изразът съдържа валиден JSON, JSON_VALID()
връща 1
, в противен случай връща 0
.
Синтаксис
Синтаксисът е така:
JSON_VALID(val)
Където val
е стойността, за която тествате за валиден JSON.
Пример 1 – Валиден JSON
Ето пример, за да демонстрирате какво се случва, когато низът съдържа валиден JSON.
SELECT JSON_VALID('{"Име":"Барт"}') КАТО резултат;
Резултат:
<пред>+--------+| Резултат |+--------+| 1 |+-------+Пример 2 – Невалиден JSON
Ето пример, за да демонстрирате какво се случва, когато низът не съдържа валиден JSON.
SELECT JSON_VALID('Име:Bart') КАТО резултат;
Резултат:
<пред>+--------+| Резултат |+--------+| 0 |+-------+Пример 3 – Пример за база данни
В тази заявка към база данни резултатите се връщат само когато Collections.Contents
колоната съдържа валиден JSON.
Тази конкретна колона използва тип данни json
за да съхранявате JSON документа.
SELECT ContentsFROM CollectionWHERE JSON_VALID(Contents) =1;
Резултат:
+-----------+| Съдържание ||------------|| [ { "ArtistName":"AC/DC", "Albums":[ { "AlbumName":"Powerage" } ] }, { "ArtistName":"Devin Townsend", "Albums":[ { "AlbumName":" Ziltoid the Omniscient" }, { "AlbumName":"Casualties of Cool" }, { "AlbumName":"Epicloud" } ] }, { "ArtistName":"Iron Maiden", "Album":[ { "AlbumName":"Powerslave" }, { "AlbumName":"Somewhere in Time" }, { "AlbumName":"Piece of Mind" }, { "AlbumName":"Killers" }, { "AlbumName":"Без молитва за умиращите " } ] }] |+-----------+
Ето какво се случва, ако променим израза, за да върне данните само ако isn't
валиден JSON.
SELECT ContentsFROM CollectionWHERE JSON_VALID(Contents) =0;
Резултат:
Празен набор (0,00 сек)