MariaDB
 sql >> Database >  >> RDS >> MariaDB

Spiegazione di MariaDB JSON_LOOSE()

In MariaDB, JSON_LOOSE() è una funzione incorporata che aggiunge spazi a un documento JSON per renderlo più leggibile.

È simile a JSON_DETAILED() funzione, tranne per il fatto che non enfatizza le strutture nidificate nel modo in cui JSON_DETAILED() fa.

Per l'effetto opposto (cioè per rimuovere gli spazi non necessari), usa JSON_COMPACT() funzione.

Sintassi

La sintassi è questa:

JSON_LOOSE(json_doc)

Dove json_doc è il documento JSON.

Esempio

Ecco un esempio da dimostrare.

SET @json = '{"name":"Wag","type":"Dog"}';

SELECT JSON_LOOSE(@json);

Risultato:

+--------------------------------+
| JSON_LOOSE(@json)              |
+--------------------------------+
| {"name": "Wag", "type": "Dog"} |
+--------------------------------+

Il documento originale non contiene spazi, ma il risultato di JSON_LOOSE() contiene spazi..

Eccolo di nuovo confrontato con il documento originale:

SET @json = '{"name":"Wag","type":"Dog"}';

SELECT 
    @json AS 'Original',
    JSON_LOOSE(@json) AS 'Modified';

Risultato:

+-----------------------------+--------------------------------+
| Original                    | Modified                       |
+-----------------------------+--------------------------------+
| {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} |
+-----------------------------+--------------------------------+

Oggetti e array

Ecco un esempio con un oggetto e un array, solo per mostrare che non fornisce alcuna formattazione aggiuntiva per tali strutture.

SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';

SELECT JSON_LOOSE(@json);

Risultato:

+----------------------------------------------------+
| JSON_LOOSE(@json)                                  |
+----------------------------------------------------+
| {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} |
+----------------------------------------------------+

Se hai bisogno di una formattazione aggiuntiva per queste strutture, prova JSON_DETAILED() funzione.

Argomento nullo

Se l'argomento è NULL , il risultato è NULL :

SELECT JSON_LOOSE(null);

Risultato:

+------------------+
| JSON_LOOSE(null) |
+------------------+
| NULL             |
+------------------+

Conteggio parametri errato

Non fornire argomenti genera un errore:

SELECT JSON_LOOSE();

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'

È lo stesso quando fornisci troppi argomenti:

SELECT JSON_LOOSE('{"a":1}', 2);

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'