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'