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'