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'