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'