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

MariaDB JSON_DETAILED () Giải thích

Trong MariaDB, JSON_DETAILED() là một hàm tích hợp có chức năng nhận tài liệu JSON và trả về ở định dạng dễ đọc hơn cho con người.

Điều này đôi khi được gọi là kiểm tra tài liệu. Nó tương tự như JSON_PRETTY() của MySQL chức năng.

Đối với tác dụng ngược lại (tức là cô đọng tài liệu JSON), hãy sử dụng JSON_COMPACT() chức năng.

Cú pháp

Cú pháp như sau:

JSON_DETAILED(json_doc[, tab_size])

Ở đâu json_doc là tài liệu JSON và tab_size là một giá trị tùy chọn chỉ định kích thước của tab / thụt lề.

Ví dụ

Đây là một ví dụ để chứng minh.

SET @json_document = '{ "name": "Wag", "type": "Dog", "weight": 20 }';

SELECT JSON_DETAILED(@json_document);

Kết quả:

+----------------------------------------+
| JSON_DETAILED(@json_document)          |
+----------------------------------------+
| {
    "name": "Wag",
    "type": "Dog",
    "weight": 20
} |
+----------------------------------------+

Toàn bộ tài liệu gốc nằm trên một dòng, không có tab / thụt lề hoặc định dạng khác.

Kết quả được trải rộng trên nhiều dòng và chứa các tab / thụt lề, giúp con người chúng ta đọc tài liệu dễ dàng hơn.

Cấu trúc lồng nhau

Dưới đây là một vài ví dụ khác, lần này là với các cấu trúc lồng nhau:

SET @json_document = '{ "_id" : 1, "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] }';

SELECT JSON_DETAILED(@json_document);

Kết quả:

+---------------------------------------+
| JSON_DETAILED(@json_document)         |
+---------------------------------------+
| {
    "_id": 1,
    "awards": 
    [
        "Top Dog",
        "Best Dog",
        "Biggest Dog"
    ]
} |
+---------------------------------------+

Và một cái khác:

SET @json_document = '{ "_id" : 2, "specs" : { "height" : 400, "weight" : 15, "color" : "brown" } }';

SELECT JSON_DETAILED(@json_document);

Kết quả:

+---------------------------------------+
| JSON_DETAILED(@json_document)         |
+---------------------------------------+
| {
    "_id": 2,
    "specs": 
    {
        "height": 400,
        "weight": 15,
        "color": "brown"
    }
} |
+---------------------------------------+

Kích thước tab

Bạn cũng có tùy chọn chỉ định kích thước tab. Để thực hiện việc này, hãy chuyển kích thước tab mong muốn làm đối số thứ hai.

Ví dụ

SET @json_document = '{ "_id" : 1, "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] }';

SELECT JSON_DETAILED(@json_document, 1);

Kết quả:

{
 "_id": 1,
 "awards": 
 [
  "Top Dog",
  "Best Dog",
  "Biggest Dog"
 ]
}

Và đây là một lần nữa, nhưng với kích thước tab lớn hơn:

SET @json_document = '{ "_id" : 1, "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] }';

SELECT JSON_DETAILED(@json_document, 10);

Kết quả:

{
 "_id": 1,
 "awards": 
 [
  "Top Dog",
  "Best Dog",
  "Biggest Dog"
 ]
}

Tài liệu JSON lớn hơn

Đây là một ví dụ với tài liệu JSON lớn hơn một chút.

SET @json_document = '{"_id":1,"name":"Wag","details":{"type":"Dog","weight":20,"awards":{"Florida Dog Awards":"Top Dog","New York Marathon":"Fastest Dog","Sumo 2020":"Biggest Dog"}}}';

SELECT JSON_DETAILED(@json_document);

Kết quả:

{
    "_id": 1,
    "name": "Wag",
    "details": 
    {
        "type": "Dog",
        "weight": 20,
        "awards": 
        {
            "Florida Dog Awards": "Top Dog",
            "New York Marathon": "Fastest Dog",
            "Sumo 2020": "Biggest Dog"
        }
    }
}

Đối số rỗng

Nếu đối số là NULL , kết quả là NULL :

SELECT JSON_DETAILED(null);

Kết quả:

+---------------------+
| JSON_DETAILED(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_DETAILED();

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_DETAILED'

Điều này cũng tương tự khi bạn cung cấp quá nhiều đối số:

SELECT JSON_DETAILED('{ "a": 1}', 1, 2);

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_DETAILED'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt Laravel trên Ubuntu với hỗ trợ Apache, MariaDB và PHP

  2. Cách RTRIM () hoạt động trong MariaDB

  3. Hiển thị đối chiếu trong MariaDB

  4. Trả lại Ngôn ngữ được sử dụng cho các Hàm Ngày &Giờ trong MariaDB

  5. MariaDB LCASE () Giải thích