En MariaDB, JSON_LOOSE()
es una función integrada que agrega espacios a un documento JSON para que sea más legible.
Es similar al JSON_DETAILED()
función, excepto que no enfatiza estructuras anidadas en la forma en que JSON_DETAILED()
lo hace.
Para el efecto contrario (es decir, para eliminar espacios innecesarios), use JSON_COMPACT()
función.
Sintaxis
La sintaxis es así:
JSON_LOOSE(json_doc)
Donde json_doc
es el documento JSON.
Ejemplo
Aquí hay un ejemplo para demostrarlo.
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT JSON_LOOSE(@json);
Resultado:
+--------------------------------+ | JSON_LOOSE(@json) | +--------------------------------+ | {"name": "Wag", "type": "Dog"} | +--------------------------------+
El documento original no contiene espacios, sino el resultado de JSON_LOOSE()
contiene espacios..
Aquí se compara de nuevo con el documento original:
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT
@json AS 'Original',
JSON_LOOSE(@json) AS 'Modified';
Resultado:
+-----------------------------+--------------------------------+ | Original | Modified | +-----------------------------+--------------------------------+ | {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} | +-----------------------------+--------------------------------+
Objetos y matrices
Aquí hay un ejemplo con un objeto y una matriz, solo para mostrar que no proporciona ningún formato adicional para tales estructuras.
SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';
SELECT JSON_LOOSE(@json);
Resultado:
+----------------------------------------------------+ | JSON_LOOSE(@json) | +----------------------------------------------------+ | {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} | +----------------------------------------------------+
Si necesita un formato adicional para estas estructuras, pruebe JSON_DETAILED()
función.
Argumento nulo
Si el argumento es NULL
, el resultado es NULL
:
SELECT JSON_LOOSE(null);
Resultado:
+------------------+ | JSON_LOOSE(null) | +------------------+ | NULL | +------------------+
Recuento de parámetros incorrecto
No proporcionar argumentos da como resultado un error:
SELECT JSON_LOOSE();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'
Es lo mismo cuando proporciona demasiados argumentos:
SELECT JSON_LOOSE('{"a":1}', 2);
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'