In MariaDB, JSON_OBJECT()
è una funzione incorporata che restituisce un oggetto JSON contenente le coppie chiave/valore fornite come argomenti.
Sintassi
La sintassi è questa:
JSON_OBJECT([key, value[, key, value] ...])
La funzione accetta un numero qualsiasi di coppie chiave/valore.
L'elenco di chiavi/valori può anche essere vuoto.
Esempio
Ecco un semplice esempio per dimostrare la funzione:
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
Risultato:
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
Nessun argomento
Come accennato, l'elenco degli argomenti può essere vuoto, nel qual caso verrà restituito un oggetto vuoto:
SELECT JSON_OBJECT();
Risultato:
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
Conteggio parametri errato
Tuttavia, se fornisci argomenti, devono essere un numero pari di argomenti (in modo che ogni chiave abbia un valore corrispondente).
Ecco cosa succede quando passo un solo argomento a JSON_OBJECT()
:
SELECT JSON_OBJECT("name");
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Lo stesso errore si verifica se passo tre argomenti:
SELECT JSON_OBJECT("name", "Homer", "type");
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
E così via...
Nomi chiavi nulli
La documentazione di MariaDB afferma che viene restituito un errore se un nome di chiave è NULL
.
Tuttavia, ottengo un risultato diverso:
SELECT JSON_OBJECT(null, null);
Risultato:
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+