sql >> Databáze >  >> RDS >> MariaDB

MariaDB JSON_DETAILED() Vysvětleno

V MariaDB, JSON_DETAILED() je vestavěná funkce, která vezme dokument JSON a vrátí jej ve formátu lépe čitelném pro člověka.

Někdy se tomu říká zkrášlování dokumentu. Je to podobné jako JSON_PRETTY() MySQL funkce.

Pro opačný efekt (tj. zhuštění dokumentu JSON dolů) použijte JSON_COMPACT() funkce.

Syntaxe

Syntaxe vypadá takto:

JSON_DETAILED(json_doc[, tab_size])

Kde json_doc je dokument JSON a tab_size je volitelná hodnota, která určuje velikost tabulátoru/odsazení.

Příklad

Zde je příklad k demonstraci.

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

SELECT JSON_DETAILED(@json_document);

Výsledek:

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

Původní dokument je celý na jednom řádku, bez tabulátorů/odsazení nebo jiného formátování.

Výsledek je rozložen na více řádcích a obsahuje tabulátory/odrážky, což nám lidem usnadňuje čtení dokumentu.

Vnořené struktury

Zde je několik dalších příkladů, tentokrát s vnořenými strukturami:

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

SELECT JSON_DETAILED(@json_document);

Výsledek:

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

A další:

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

SELECT JSON_DETAILED(@json_document);

Výsledek:

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

Velikost karty

Máte také možnost určit velikost karty. Chcete-li to provést, předejte požadovanou velikost karty jako druhý argument.

Příklad

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

SELECT JSON_DETAILED(@json_document, 1);

Výsledek:

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

A je to tady znovu, ale s větší velikostí záložky:

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

SELECT JSON_DETAILED(@json_document, 10);

Výsledek:

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

Větší dokument JSON

Zde je příklad s mírně větším 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);

Výsledek:

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

Nulový argument

Pokud je argument NULL , výsledkem je NULL :

SELECT JSON_DETAILED(null);

Výsledek:

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

Nesprávný počet parametrů

Pokud neposkytnete žádné argumenty, dojde k chybě:

SELECT JSON_DETAILED();

Výsledek:

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

Je to stejné, když uvedete příliš mnoho argumentů:

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

Výsledek:

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

  1. Pochopení skupiny dostupnosti Always ON mezi instancemi SQL Serveru na bázi Linuxu. Část 1

  2. Modelování základní datové struktury pro správu uživatelů, vláken a příspěvků

  3. Jak zrušit omezení v SQL Server (T-SQL)

  4. Jak odeslat požadavek POST s daty formuláře a parametry v PL/SQL