MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

MariaDB JSON_LOOSE () Giải thích

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'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lựa chọn công cụ lưu trữ:Aria

  2. MariaDB ở Tokyo

  3. Bạn biết bạn muốn:Di chuyển từ Oracle sang MariaDB

  4. Sửa “ERROR 1054 (42S22):Cột‘ colname ’không xác định trong‘ mệnh đề thứ tự ”trong MariaDB

  5. Cách hoạt động của REGEXP trong MariaDB