In MariaDB, JSON_COMPACT()
ist eine integrierte Funktion, die alle unnötigen Leerzeichen aus einem JSON-Dokument entfernt, damit es so kurz und kompakt wie möglich ist, und das Ergebnis zurückgibt.
Dies kann praktisch sein, wenn Sie JSON-Daten in einer Datenbankspalte speichern müssen und nicht möchten, dass die JSON-Dokumente mehr Speicherplatz als nötig verbrauchen.
Für den gegenteiligen Effekt (d. h. um ein JSON-Dokument zu verschönern, indem Sie Einzüge hinzufügen und es über mehrere Zeilen verteilen), verwenden Sie JSON_DETAILED()
Funktion.
Syntax
Die Syntax lautet wie folgt:
JSON_COMPACT(json_doc)
Wobei json_doc
ist das JSON-Dokument.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SET @json_document = '{"a": [0, 1], "b": [2, 3]}';
SELECT
JSON_COMPACT(@json_document) AS Compact,
@json_document AS Original;
Ergebnis:
+-----------------------+----------------------------+ | Compact | Original | +-----------------------+----------------------------+ | {"a":[0,1],"b":[2,3]} | {"a": [0, 1], "b": [2, 3]} | +-----------------------+----------------------------+
In diesem Fall enthält die erste Spalte die komprimierte Version und die zweite Spalte das ursprüngliche JSON-Dokument vor der Komprimierung.
Größeres JSON-Dokument
Hier ist ein Beispiel mit einem etwas größeren, verschönerten JSON-Dokument.
SET @json_document = '{
"_id" : 1,
"name" : "Wag",
"details" : {
"type" : "Dog",
"weight" : 20,
"awards" : {
"Florida Dog Awards" : "Top Dog",
"New York Marathon" : "Fastest Dog",
"Sumo 2020" : "Biggest Dog"
}
}
}';
SELECT JSON_COMPACT(@json_document);
Ergebnis:
{"_id":1,"name":"Wag","details":{"type":"Dog","weight":20,"awards":{"Florida Dog Awards":"Top Dog","New York Marathon":"Fastest Dog","Sumo 2020":"Biggest Dog"}}}
Null-Argumente
Wenn das Argument NULL
ist , ist das Ergebnis NULL
:
SELECT JSON_COMPACT(null);
Ergebnis:
+--------------------+ | JSON_COMPACT(null) | +--------------------+ | NULL | +--------------------+
Falsche Parameteranzahl
Wenn Sie keine Argumente angeben, wird ein Fehler ausgegeben:
SELECT JSON_COMPACT();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'
Wir erhalten dasselbe Ergebnis, wenn wir zu viele Argumente angeben:
SELECT JSON_COMPACT('{ "a": 1}', '{ "b": 1 }');
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'