In MariaDB, JSON_LOOSE()
ist eine integrierte Funktion, die einem JSON-Dokument Leerzeichen hinzufügt, um es besser lesbar zu machen.
Es ähnelt dem JSON_DETAILED()
Funktion, außer dass verschachtelte Strukturen nicht so betont werden wie JSON_DETAILED()
tut.
Verwenden Sie für den gegenteiligen Effekt (d. h. um unnötige Leerzeichen zu entfernen) JSON_COMPACT()
Funktion.
Syntax
Die Syntax lautet wie folgt:
JSON_LOOSE(json_doc)
Wobei json_doc
ist das JSON-Dokument.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT JSON_LOOSE(@json);
Ergebnis:
+-------------------------------+| JSON_LOOSE(@json) |+-------------------------------+| {"Name":"Wag", "Typ":"Hund"} |+------------------------------- -+
Das Originaldokument enthält keine Leerzeichen, sondern das Ergebnis von JSON_LOOSE()
enthält Leerzeichen..
Hier wird es noch einmal mit dem Originaldokument verglichen:
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT
@json AS 'Original',
JSON_LOOSE(@json) AS 'Modified';
Ergebnis:
+-------------------------------------+---------------- ----------------+| Original | Geändert |+-------------------------------------+---------------- ---------------+| {"name":"Wag","type":"Hund"} | {"Name":"Wag", "Typ":"Hund"} |+--------------------------------------+- -------------------------------+
Objekte und Arrays
Hier ist ein Beispiel mit einem Objekt und einem Array, nur um zu zeigen, dass es keine zusätzliche Formatierung für solche Strukturen bietet.
SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';
SELECT JSON_LOOSE(@json);
Ergebnis:
Wenn Sie eine zusätzliche Formatierung für diese Strukturen benötigen, versuchen Sie es mit JSON_DETAILED()
Funktion.
Null-Argument
Wenn das Argument NULL
ist , ist das Ergebnis NULL
:
SELECT JSON_LOOSE(null);
Ergebnis:
+------------------+| JSON_LOOSE(null) |+------------------+| NULL |+------------------+
Falsche Parameteranzahl
Wenn Sie keine Argumente angeben, wird ein Fehler ausgegeben:
SELECT JSON_LOOSE();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „JSON_LOOSE“
Das Gleiche gilt, wenn Sie zu viele Argumente angeben:
SELECT JSON_LOOSE('{"a":1}', 2);
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „JSON_LOOSE“