Dans MariaDB, JSON_LOOSE() est une fonction intégrée qui ajoute des espaces à un document JSON pour le rendre plus lisible.
C'est similaire au JSON_DETAILED() fonction, sauf qu'elle ne met pas l'accent sur les structures imbriquées de la même manière que JSON_DETAILED() fait.
Pour l'effet inverse (c'est-à-dire pour supprimer les espaces inutiles), utilisez le JSON_COMPACT() fonction.
Syntaxe
La syntaxe ressemble à ceci :
JSON_LOOSE(json_doc)
Où json_doc est le document JSON.
Exemple
Voici un exemple pour illustrer.
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT JSON_LOOSE(@json); Résultat :
+--------------------------------+
| JSON_LOOSE(@json) |
+--------------------------------+
| {"name": "Wag", "type": "Dog"} |
+--------------------------------+
Le document d'origine ne contient pas d'espaces, mais le résultat de JSON_LOOSE() contient des espaces..
Le voici à nouveau comparé au document d'origine :
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT
@json AS 'Original',
JSON_LOOSE(@json) AS 'Modified'; Résultat :
+-----------------------------+--------------------------------+
| Original | Modified |
+-----------------------------+--------------------------------+
| {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} |
+-----------------------------+--------------------------------+ Objets et tableaux
Voici un exemple avec un objet et un tableau, juste pour montrer qu'il ne fournit aucun formatage supplémentaire pour de telles structures.
SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';
SELECT JSON_LOOSE(@json); Résultat :
+----------------------------------------------------+
| JSON_LOOSE(@json) |
+----------------------------------------------------+
| {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} |
+----------------------------------------------------+
Si vous avez besoin d'un formatage supplémentaire pour ces structures, essayez le JSON_DETAILED() fonction.
Argument nul
Si l'argument est NULL , le résultat est NULL :
SELECT JSON_LOOSE(null); Résultat :
+------------------+ | JSON_LOOSE(null) | +------------------+ | NULL | +------------------+
Nombre de paramètres incorrect
Ne fournir aucun argument génère une erreur :
SELECT JSON_LOOSE(); Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'
Il en va de même lorsque vous fournissez trop d'arguments :
SELECT JSON_LOOSE('{"a":1}', 2); Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'