In MariaDB, JSON_LOOSE()
is een ingebouwde functie die spaties toevoegt aan een JSON-document om het leesbaarder te maken.
Het is vergelijkbaar met de JSON_DETAILED()
functie, behalve dat het geneste structuren niet benadrukt zoals JSON_DETAILED()
doet.
Voor het tegenovergestelde effect (d.w.z. om onnodige spaties te verwijderen), gebruikt u de JSON_COMPACT()
functie.
Syntaxis
De syntaxis gaat als volgt:
JSON_LOOSE(json_doc)
Waar json_doc
is het JSON-document.
Voorbeeld
Hier is een voorbeeld om te demonstreren.
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT JSON_LOOSE(@json);
Resultaat:
+--------------------------------+ | JSON_LOOSE(@json) | +--------------------------------+ | {"name": "Wag", "type": "Dog"} | +--------------------------------+
Het originele document bevat geen spaties, maar het resultaat van JSON_LOOSE()
bevat spaties..
Hier wordt het nogmaals vergeleken met het originele document:
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT
@json AS 'Original',
JSON_LOOSE(@json) AS 'Modified';
Resultaat:
+-----------------------------+--------------------------------+ | Original | Modified | +-----------------------------+--------------------------------+ | {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} | +-----------------------------+--------------------------------+
Objecten en arrays
Hier is een voorbeeld met een object en een array, om te laten zien dat het geen extra opmaak biedt voor dergelijke structuren.
SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';
SELECT JSON_LOOSE(@json);
Resultaat:
+----------------------------------------------------+ | JSON_LOOSE(@json) | +----------------------------------------------------+ | {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} | +----------------------------------------------------+
Als je extra opmaak nodig hebt voor deze structuren, probeer dan de JSON_DETAILED()
functie.
Nullargument
Als het argument NULL
is , het resultaat is NULL
:
SELECT JSON_LOOSE(null);
Resultaat:
+------------------+ | JSON_LOOSE(null) | +------------------+ | NULL | +------------------+
Onjuist aantal parameters
Het verstrekken van geen argumenten resulteert in een fout:
SELECT JSON_LOOSE();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'
Het is hetzelfde als je te veel argumenten geeft:
SELECT JSON_LOOSE('{"a":1}', 2);
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'