Dans MariaDB, JSON_OBJECT()
est une fonction intégrée qui renvoie un objet JSON contenant les paires clé/valeur fournies comme arguments.
Syntaxe
La syntaxe ressemble à ceci :
JSON_OBJECT([key, value[, key, value] ...])
La fonction accepte n'importe quel nombre de paires clé/valeur.
La liste clé/valeur peut également être vide.
Exemple
Voici un exemple simple pour illustrer la fonction :
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
Résultat :
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
Aucun argument
Comme mentionnéend, la liste d'arguments peut être vide, auquel cas, un objet vide sera retourné :
SELECT JSON_OBJECT();
Résultat :
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
Nombre de paramètres incorrect
Cependant, si vous fournissez des arguments, ils doivent être un nombre pair d'arguments (afin que chaque clé ait une valeur correspondante).
Voici ce qui se passe lorsque je passe un seul argument à JSON_OBJECT()
:
SELECT JSON_OBJECT("name");
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
La même erreur se produit si je passe trois arguments :
SELECT JSON_OBJECT("name", "Homer", "type");
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Et ainsi de suite…
Noms de clé nuls
La documentation MariaDB indique qu'une erreur est renvoyée si un nom de clé est NULL
.
Cependant, j'obtiens un résultat différent :
SELECT JSON_OBJECT(null, null);
Résultat :
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+