MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

MariaDB JSON_DETAILED() Objaśnienie

W MariaDB, JSON_DETAILED() to wbudowana funkcja, która pobiera dokument JSON i zwraca go w formacie bardziej czytelnym dla człowieka.

Czasami nazywa się to upiększaniem dokumentu. Jest podobny do JSON_PRETTY() w MySQL funkcja.

Aby uzyskać efekt odwrotny (tj. skondensować dokument JSON), użyj JSON_COMPACT() funkcja.

Składnia

Składnia wygląda tak:

JSON_DETAILED(json_doc[, tab_size])

Gdzie json_doc jest dokumentem JSON, a tab_size jest opcjonalną wartością, która określa rozmiar tabulatora/wcięć.

Przykład

Oto przykład do zademonstrowania.

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

SELECT JSON_DETAILED(@json_document);

Wynik:

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

Oryginalny dokument znajduje się w jednym wierszu, bez tabulatorów/wcięć ani innego formatowania.

Wynik jest rozłożony na wiele wierszy i zawiera tabulatory/wcięcia, dzięki czemu dokument jest łatwiejszy do odczytania dla nas, ludzi.

Struktury zagnieżdżone

Oto jeszcze kilka przykładów, tym razem ze strukturami zagnieżdżonymi:

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

SELECT JSON_DETAILED(@json_document);

Wynik:

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

I jeszcze:

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

SELECT JSON_DETAILED(@json_document);

Wynik:

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

Rozmiar karty

Masz również możliwość określenia rozmiaru zakładki. Aby to zrobić, przekaż żądany rozmiar tabulatora jako drugi argument.

Przykład

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

SELECT JSON_DETAILED(@json_document, 1);

Wynik:

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

I znowu, ale z większym rozmiarem zakładki:

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

SELECT JSON_DETAILED(@json_document, 10);

Wynik:

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

Większy dokument JSON

Oto przykład z nieco większym dokumentem JSON.

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);

Wynik:

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

Argument zerowy

Jeśli argument to NULL , wynik to NULL :

SELECT JSON_DETAILED(null);

Wynik:

+---------------------+
| JSON_DETAILED(null) |
+---------------------+
| NULL                |
+---------------------+

Nieprawidłowa liczba parametrów

Brak argumentów skutkuje błędem:

SELECT JSON_DETAILED();

Wynik:

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

Tak samo jest, gdy podajesz zbyt wiele argumentów:

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

Wynik:

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. Ciągi formatu daty MariaDB

  2. 7 opcji włączania potoków (||) jako operatora konkatenacji w MariaDB

  3. Wdrażanie wysoce dostępnych baz danych i klastrów za pomocą ClusterControl

  4. Jak zautomatyzować przełączanie awaryjne bazy danych za pomocą ClusterControl

  5. Wprowadzenie do wdrażania MySQL przy użyciu roli Ansible