Trong MariaDB, JSON_QUOTE()
là một hàm tích hợp tạo ra một ký tự chuỗi JSON hợp lệ có thể được đưa vào tài liệu JSON.
Nó bao bọc chuỗi bằng các ký tự dấu ngoặc kép và thoát khỏi các dấu ngoặc kép bên trong và các ký tự đặc biệt khác, trả về một chuỗi utf8mb4.
Cú pháp
Cú pháp như sau:
JSON_QUOTE(json_value)
Ví dụ
Đây là một ví dụ để chứng minh.
SELECT JSON_QUOTE('Small') AS 'Result';
Kết quả:
+---------+ | Result | +---------+ | "Small" | +---------+
Ký tự thoát
Ngoài việc đặt chuỗi trong dấu ngoặc kép, JSON_QUOTE()
cũng thoát khỏi dấu ngoặc kép bên trong và các ký tự đặc biệt khác.
Ví dụ:
SELECT JSON_QUOTE('By "small", she meant "tiny"') AS 'Result';
Kết quả:
+------------------------------------+ | Result | +------------------------------------+ | "By \"small\", she meant \"tiny\"" | +------------------------------------+
Trong trường hợp này, chuỗi ban đầu chứa dấu ngoặc kép và do đó chuỗi kết quả thoát khỏi mỗi dấu ngoặc kép bằng dấu gạch chéo ngược.
Nếu dấu ngoặc kép không được thoát, chúng sẽ cản trở các dấu ngoặc kép bên ngoài và vô tình kết thúc chuỗi sớm.
Đối tượng JSON
Dưới đây là một ví dụ về trích dẫn biểu diễn chuỗi của một đối tượng JSON:
SELECT JSON_QUOTE('{ "name": "Brandy"}');
Kết quả:
+-----------------------------------+ | JSON_QUOTE('{ "name": "Brandy"}') | +-----------------------------------+ | "{ \"name\": \"Brandy\"}" | +-----------------------------------+
Mảng
Dưới đây là một ví dụ về trích dẫn biểu diễn chuỗi của một mảng:
SELECT JSON_QUOTE('[ "Small", "Medium", "Large" ]');
Kết quả:
+----------------------------------------------+ | JSON_QUOTE('[ "Small", "Medium", "Large" ]') | +----------------------------------------------+ | "[ \"Small\", \"Medium\", \"Large\" ]" | +----------------------------------------------+
Số
Chuyển một số trả về NULL
:
SELECT JSON_QUOTE(10) AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | NULL | +--------+
Số sẽ cần được cung cấp dưới dạng một chuỗi. Sau đó, nó sẽ được trả về dưới dạng một chuỗi được trích dẫn.
Ví dụ:
SELECT JSON_QUOTE('10') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | "10" | +--------+
Đối số rỗng
Nếu đối số là NULL
, kết quả là NULL
:
SELECT JSON_QUOTE(null);
Kết quả:
+------------------+ | JSON_QUOTE(null) | +------------------+ | NULL | +------------------+
Đếm tham số không chính xác
Đang gọi JSON_QUOTE()
không có đối số dẫn đến lỗi:
SELECT JSON_QUOTE();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Điều này cũng tương tự khi bạn cung cấp quá nhiều đối số:
SELECT JSON_QUOTE('a', 'b');
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_QUOTE'
Các ví dụ khác
MariaDB JSON_QUOTE()
hoạt động giống như hàm MySQL cùng tên. Xem JSON_QUOTE()
- Cách thoát các ký tự trong chuỗi được sử dụng làm Giá trị JSON trong MySQL để biết thêm ví dụ.