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'