W MariaDB, JSON_OBJECT()
to wbudowana funkcja, która zwraca obiekt JSON zawierający pary klucz/wartość dostarczone jako argumenty.
Składnia
Składnia wygląda tak:
JSON_OBJECT([key, value[, key, value] ...])
Funkcja akceptuje dowolną liczbę par klucz/wartość.
Lista klucz/wartość może być również pusta.
Przykład
Oto prosty przykład demonstrujący funkcję:
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
Wynik:
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
Brak argumentów
Jak wspomniano, lista argumentów może być pusta, w takim przypadku zostanie zwrócony pusty obiekt:
SELECT JSON_OBJECT();
Wynik:
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
Nieprawidłowa liczba parametrów
Jeśli jednak podasz argumenty, muszą one być parzystą liczbą argumentów (tak, aby każdy klucz miał odpowiednią wartość).
Oto, co się dzieje, gdy przekazuję tylko jeden argument do JSON_OBJECT()
:
SELECT JSON_OBJECT("name");
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Ten sam błąd pojawia się, jeśli przekażę trzy argumenty:
SELECT JSON_OBJECT("name", "Homer", "type");
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
I tak dalej…
Nazwy kluczy pustych
Dokumentacja MariaDB stwierdza, że jeśli jakakolwiek nazwa klucza ma wartość NULL
, zwracany jest błąd .
Otrzymuję jednak inny wynik:
SELECT JSON_OBJECT(null, null);
Wynik:
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+