Trong MySQL, JSON_TYPE()
hàm trả về kiểu của một giá trị JSON. Cụ thể hơn, nó trả về utf8mb4
chuỗi cho biết loại của giá trị.
Bạn cung cấp giá trị JSON làm đối số.
Cú pháp
Cú pháp như sau:
JSON_TYPE(json_val)
Ở đâu json_val
là giá trị JSON để trả về kiểu. Đây có thể là một đối tượng, một mảng hoặc một kiểu vô hướng.
Ví dụ 1 - Đối tượng
Dưới đây là một ví dụ khi giá trị là một đối tượng.
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_TYPE(@data) 'JSON Type';
Kết quả:
+-----------+ | JSON Type | +-----------+ | OBJECT | +-----------+
Ví dụ 2 - Mảng
Đây là một ví dụ về mảng.
SET @data = '[1, 2, 3]'; SELECT JSON_TYPE(@data) 'JSON Type';
Kết quả:
+-----------+ | JSON Type | +-----------+ | ARRAY | +-----------+
Ví dụ 3 - Trích xuất dữ liệu từ một mảng
Bạn cũng có thể lấy kiểu của các phần tử riêng lẻ trong mảng.
SET @data = '[1, 2, 3]'; SELECT JSON_EXTRACT(@data, '$[1]') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';
Kết quả:
+------+-----------+ | Data | JSON Type | +------+-----------+ | 2 | INTEGER | +------+-----------+
Ví dụ 4 - Trích xuất dữ liệu từ một đối tượng
Điều tương tự cũng áp dụng cho các thành viên của một đối tượng.
SET @data = '{"Name": "Homer", "Stupid": "True"}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Kết quả:
+--------+-----------+ | Data | JSON Type | +--------+-----------+ | "True" | STRING | +--------+-----------+
Trong trường hợp đó, giá trị là chuỗi ký tự "True"
.
Đây là một ví dụ khác, nhưng lần này sử dụng giá trị boolean true
.
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Kết quả:
+------+-----------+ | Data | JSON Type | +------+-----------+ | true | BOOLEAN | +------+-----------+
Ví dụ 5 - Truy vấn Cơ sở dữ liệu
Ví dụ này sử dụng một cột cơ sở dữ liệu.
SELECT Contents, JSON_TYPE(Contents) 'Contents', JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name' FROM Collections WHERE CollectionId = 4;
Kết quả:
+--------------------------------+----------+--------+ | Contents | Contents | Name | +--------------------------------+----------+--------+ | {"Name": "Homer", "Stupid": 1} | OBJECT | STRING | +--------------------------------+----------+--------+