Trong MariaDB, JSON_LOOSE()
là một chức năng tích hợp để thêm khoảng trắng vào tài liệu JSON để làm cho nó dễ đọc hơn.
Nó tương tự với JSON_DETAILED()
, ngoại trừ việc nó không nhấn mạnh các cấu trúc lồng nhau theo cách mà JSON_DETAILED()
không.
Đối với tác dụng ngược lại (tức là để loại bỏ các khoảng trắng không cần thiết), hãy sử dụng JSON_COMPACT()
chức năng.
Cú pháp
Cú pháp như sau:
JSON_LOOSE(json_doc)
Ở đâu json_doc
là tài liệu JSON.
Ví dụ
Đây là một ví dụ để chứng minh.
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT JSON_LOOSE(@json);
Kết quả:
+--------------------------------+ | JSON_LOOSE(@json) | +--------------------------------+ | {"name": "Wag", "type": "Dog"} | +--------------------------------+
Tài liệu gốc không chứa khoảng trắng mà là kết quả của JSON_LOOSE()
chứa khoảng trắng ..
Ở đây nó được so sánh một lần nữa với tài liệu gốc:
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT
@json AS 'Original',
JSON_LOOSE(@json) AS 'Modified';
Kết quả:
+-----------------------------+--------------------------------+ | Original | Modified | +-----------------------------+--------------------------------+ | {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} | +-----------------------------+--------------------------------+
Đối tượng và Mảng
Dưới đây là một ví dụ với một đối tượng và một mảng, chỉ để chứng tỏ rằng nó không cung cấp bất kỳ định dạng bổ sung nào cho các cấu trúc như vậy.
SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';
SELECT JSON_LOOSE(@json);
Kết quả:
+----------------------------------------------------+ | JSON_LOOSE(@json) | +----------------------------------------------------+ | {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} | +----------------------------------------------------+
Nếu bạn cần thêm định dạng cho các cấu trúc này, hãy thử JSON_DETAILED()
chức năng.
Đối số rỗng
Nếu đối số là NULL
, kết quả là NULL
:
SELECT JSON_LOOSE(null);
Kết quả:
+------------------+ | JSON_LOOSE(null) | +------------------+ | NULL | +------------------+
Đếm tham số không chính xác
Không cung cấp đối số dẫn đến lỗi:
SELECT JSON_LOOSE();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'
Điều này cũng tương tự khi bạn cung cấp quá nhiều đối số:
SELECT JSON_LOOSE('{"a":1}', 2);
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'