In MariaDB, JSON_COMPACT()
is een ingebouwde functie die alle onnodige spaties uit een JSON-document verwijdert, zodat het zo kort en compact mogelijk is, en het resultaat retourneert.
Dit kan handig zijn wanneer u JSON-gegevens in een databasekolom moet opslaan en u niet wilt dat de JSON-documenten meer ruimte in beslag nemen dan nodig is.
Voor het tegenovergestelde effect (d.w.z. om een JSON-document mooier te maken door inspringingen toe te voegen en het over meerdere regels te spreiden), gebruikt u de JSON_DETAILED()
functie.
Syntaxis
De syntaxis gaat als volgt:
JSON_COMPACT(json_doc)
Waar json_doc
is het JSON-document.
Voorbeeld
Hier is een voorbeeld om te demonstreren.
SET @json_document = '{"a": [0, 1], "b": [2, 3]}';
SELECT
JSON_COMPACT(@json_document) AS Compact,
@json_document AS Original;
Resultaat:
+-----------------------+----------------------------+ | Compact | Original | +-----------------------+----------------------------+ | {"a":[0,1],"b":[2,3]} | {"a": [0, 1], "b": [2, 3]} | +-----------------------+----------------------------+
In dit geval bevat de eerste kolom de gecomprimeerde versie en de tweede kolom het originele JSON-document voordat het werd gecomprimeerd.
Groter JSON-document
Hier is een voorbeeld met een iets groter, mooier JSON-document.
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);
Resultaat:
{"_id":1,"name":"Wag","details":{"type":"Dog","weight":20,"awards":{"Florida Dog Awards":"Top Dog","New York Marathon":"Fastest Dog","Sumo 2020":"Biggest Dog"}}}
Nullargumenten
Als het argument NULL
is , het resultaat is NULL
:
SELECT JSON_COMPACT(null);
Resultaat:
+--------------------+ | JSON_COMPACT(null) | +--------------------+ | NULL | +--------------------+
Onjuist aantal parameters
Het verstrekken van geen argumenten resulteert in een fout:
SELECT JSON_COMPACT();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'
We krijgen hetzelfde resultaat als we te veel argumenten geven:
SELECT JSON_COMPACT('{ "a": 1}', '{ "b": 1 }');
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'