Trong MySQL, bạn có thể sử dụng JSON_OBJECT()
hàm tạo đối tượng JSON từ danh sách các cặp khóa / giá trị. Bạn cung cấp mỗi cặp khóa / giá trị dưới dạng hai đối số riêng biệt. Mỗi cặp trở thành một cặp khóa / giá trị trong đối tượng JSON kết quả.
Bạn phải cung cấp một số lượng đối số chẵn (nếu không, bạn sẽ có một cặp không hoàn chỉnh ở đâu đó trong danh sách các đối số của mình).
Hàm cũng chấp nhận một danh sách trống (tức là bạn không cung cấp đối số). Trong trường hợp này, bạn sẽ nhận được một đối tượng trống.
Cú pháp
Cú pháp như sau:
JSON_OBJECT([key, val[, key, val] ...])
Dấu ngoặc vuông cho biết một đối số tùy chọn. Do đó, việc sử dụng hàm này mà không cần chuyển bất kỳ đối số nào là hoàn toàn hợp lệ.
Ví dụ 1 - Cách sử dụng cơ bản
Đây là một ví dụ để chứng minh.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', 139693) AS 'Result';
Kết quả:
+------------------------------------------+ | Result | +------------------------------------------+ | {"City": "Cairns", "Population": 139693} | +------------------------------------------+
Ví dụ 2 - Chuỗi rỗng
Chuỗi trống là hợp lệ.
SELECT JSON_OBJECT('City', '', 'Population', 139693) AS 'Result';
Kết quả:
+------------------------------------+ | Result | +------------------------------------+ | {"City": "", "Population": 139693} | +------------------------------------+
Điều này cũng áp dụng cho khóa:
SELECT JSON_OBJECT('', 'Cairns', 'Population', 139693) AS 'Result';
Kết quả:
+--------------------------------------+ | Result | +--------------------------------------+ | {"": "Cairns", "Population": 139693} | +--------------------------------------+
Ví dụ 3 - Danh sách trống
Danh sách trống cũng hợp lệ. Điều này sẽ dẫn đến một đối tượng JSON trống.
SELECT JSON_OBJECT() AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | {} | +--------+
Ví dụ 4 - Giá trị NULL
Giá trị một phần của cặp khóa / giá trị có thể chứa giá trị NULL.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', NULL) AS 'Result';
Kết quả:
+----------------------------------------+ | Result | +----------------------------------------+ | {"City": "Cairns", "Population": null} | +----------------------------------------+
Nhưng chìa khóa phần không được chứa giá trị NULL. Nếu khóa có giá trị NULL, lỗi sẽ xảy ra.
SELECT JSON_OBJECT('City', 'Cairns', NULL, 139693) AS 'Result';
Kết quả:
ERROR 3158 (22032): JSON documents may not contain NULL member names.