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

MariaDB JSON_LOOSE() Vysvětleno

V MariaDB, JSON_LOOSE() je vestavěná funkce, která do dokumentu JSON přidává mezery, aby byl čitelnější.

Je podobný JSON_DETAILED() funkce, kromě toho, že nezdůrazňuje vnořené struktury způsobem, který JSON_DETAILED() ano.

Pro opačný efekt (tj. odstranění nepotřebných mezer) použijte JSON_COMPACT() funkce.

Syntaxe

Syntaxe vypadá takto:

JSON_LOOSE(json_doc)

Kde json_doc je dokument JSON.

Příklad

Zde je příklad k demonstraci.

SET @json = '{"name":"Wag","type":"Dog"}';

SELECT JSON_LOOSE(@json);

Výsledek:

+--------------------------------+
| JSON_LOOSE(@json)              |
+--------------------------------+
| {"name": "Wag", "type": "Dog"} |
+--------------------------------+

Původní dokument neobsahuje žádné mezery, ale výsledek JSON_LOOSE() obsahuje mezery..

Zde je opět porovnán s původním dokumentem:

SET @json = '{"name":"Wag","type":"Dog"}';

SELECT 
    @json AS 'Original',
    JSON_LOOSE(@json) AS 'Modified';

Výsledek:

+-----------------------------+--------------------------------+
| Original                    | Modified                       |
+-----------------------------+--------------------------------+
| {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} |
+-----------------------------+--------------------------------+

Objekty a pole

Zde je příklad s objektem a polem, abychom ukázali, že pro takové struktury neposkytuje žádné další formátování.

SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';

SELECT JSON_LOOSE(@json);

Výsledek:

+----------------------------------------------------+
| JSON_LOOSE(@json)                                  |
+----------------------------------------------------+
| {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} |
+----------------------------------------------------+

Pokud pro tyto struktury potřebujete další formátování, vyzkoušejte JSON_DETAILED() funkce.

Nulový argument

Pokud je argument NULL , výsledkem je NULL :

SELECT JSON_LOOSE(null);

Výsledek:

+------------------+
| JSON_LOOSE(null) |
+------------------+
| NULL             |
+------------------+

Nesprávný počet parametrů

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

SELECT JSON_LOOSE();

Výsledek:

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

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

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

Výsledek:

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

  1. Funkce REGEXP_INSTR() v Oracle

  2. Nejlepší způsob, jak hostovat MySQL v Azure Cloud

  3. Existuje nějaký způsob, jak vyprázdnit výstup z PL/SQL v Oracle?

  4. Ušetřete čas spouštěním sestav Microsoft Access pomocí filtrů v zobrazení rozvržení