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} |
+-------------------------+