Trong MariaDB, JSON_OBJECT()
là một hàm tích hợp trả về một đối tượng JSON có chứa các cặp khóa / giá trị được cung cấp dưới dạng đối số.
Cú pháp
Cú pháp như sau:
JSON_OBJECT([key, value[, key, value] ...])
Hàm chấp nhận bất kỳ số lượng cặp khóa / giá trị nào.
Danh sách khóa / giá trị cũng có thể để trống.
Ví dụ
Dưới đây là một ví dụ đơn giản để chứng minh chức năng:
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
Kết quả:
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
Không tranh luận
Là mentionend, danh sách đối số có thể trống, trong trường hợp đó, một đối tượng trống sẽ được trả về:
SELECT JSON_OBJECT();
Kết quả:
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
Đếm tham số không chính xác
Tuy nhiên, nếu bạn cung cấp các đối số, chúng phải là một số chẵn đối số (để mỗi khóa có một giá trị tương ứng).
Đây là những gì sẽ xảy ra khi tôi chỉ chuyển một đối số vào JSON_OBJECT()
:
SELECT JSON_OBJECT("name");
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Cùng một lỗi xảy ra nếu tôi chuyển ba đối số:
SELECT JSON_OBJECT("name", "Homer", "type");
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Và cứ thế…
Tên khóa rỗng
Tài liệu MariaDB tuyên bố rằng lỗi được trả về nếu bất kỳ tên khóa nào là NULL
.
Tuy nhiên, tôi nhận được một kết quả khác:
SELECT JSON_OBJECT(null, null);
Kết quả:
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+