Khi sử dụng MySQL, bạn có thể sử dụng JSON_VALID()
để kiểm tra xem một biểu thức chuỗi có chứa JSON hợp lệ hay không.
Nếu biểu thức chứa JSON hợp lệ, JSON_VALID()
trả về 1
, nếu không nó trả về 0
.
Cú pháp
Cú pháp như sau:
JSON_VALID(val)
Ở đâu val
là giá trị mà bạn đang kiểm tra JSON hợp lệ.
Ví dụ 1 - JSON hợp lệ
Dưới đây là một ví dụ để chứng minh điều gì sẽ xảy ra khi chuỗi chứa JSON hợp lệ.
SELECT JSON_VALID('{"Name": "Bart"}') AS Result;
Kết quả:
+--------+ | Result | +--------+ | 1 | +--------+
Ví dụ 2 - JSON không hợp lệ
Dưới đây là một ví dụ để chứng minh điều gì sẽ xảy ra khi chuỗi doesn’t chứa JSON hợp lệ.
SELECT JSON_VALID('Name: Bart') AS Result;
Kết quả:
+--------+ | Result | +--------+ | 0 | +--------+
Ví dụ 3 - Ví dụ về Cơ sở dữ liệu
Trong truy vấn cơ sở dữ liệu này, kết quả chỉ được trả về khi Collections.Contents
cột chứa JSON hợp lệ.
Cột cụ thể này sử dụng kiểu dữ liệu là json
để lưu trữ tài liệu JSON.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 1;
Kết quả:
+------------+ | 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" } ] } ] | +------------+
Đây là những gì sẽ xảy ra nếu chúng tôi thay đổi câu lệnh để chỉ trả lại dữ liệu nếu nó isn't
JSON hợp lệ.
SELECT Contents FROM Collections WHERE JSON_VALID(Contents) = 0;
Kết quả:
Empty set (0.00 sec)