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'