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'