In MariaDB, JSON_OBJECT()
is een ingebouwde functie die een JSON-object retourneert dat de sleutel/waarde-paren bevat die als argumenten zijn opgegeven.
Syntaxis
De syntaxis gaat als volgt:
JSON_OBJECT([key, value[, key, value] ...])
De functie accepteert een willekeurig aantal sleutel/waarde-paren.
De sleutel/waardenlijst kan ook leeg zijn.
Voorbeeld
Hier is een eenvoudig voorbeeld om de functie te demonstreren:
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
Resultaat:
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
Geen argumenten
Zoals vermeld, kan de lijst met argumenten leeg zijn, in welk geval een leeg object wordt geretourneerd:
SELECT JSON_OBJECT();
Resultaat:
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
Onjuist aantal parameters
Als u echter argumenten opgeeft, moeten deze een even aantal argumenten zijn (zodat elke sleutel een overeenkomstige waarde heeft).
Dit is wat er gebeurt als ik slechts één argument doorgeef aan JSON_OBJECT()
:
SELECT JSON_OBJECT("name");
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Dezelfde fout treedt op als ik drie argumenten doorgeef:
SELECT JSON_OBJECT("name", "Homer", "type");
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
En zo verder...
Null-sleutelnamen
In de MariaDB-documentatie staat dat er een fout wordt geretourneerd als een sleutelnaam NULL
is .
Ik krijg echter een ander resultaat:
SELECT JSON_OBJECT(null, null);
Resultaat:
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+