MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

MariaDB JSON_LOOSE() expliqué

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)

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'