В MariaDB, JSON_OBJECT()
е вградена функция, която връща JSON обект, съдържащ двойките ключ/стойност, предоставени като аргументи.
Синтаксис
Синтаксисът е така:
JSON_OBJECT([key, value[, key, value] ...])
Функцията приема произволен брой двойки ключ/стойност.
Списъкът ключ/стойност също може да бъде празен.
Пример
Ето един прост пример за демонстриране на функцията:
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
Резултат:
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
Без аргументи
Както беше споменато, списъкът с аргументи може да бъде празен, в който случай ще бъде върнат празен обект:
SELECT JSON_OBJECT();
Резултат:
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
Неправилен брой параметри
Ако обаче предоставите аргументи, те трябва да са четен брой аргументи (така че всеки ключ да има съответна стойност).
Ето какво се случва, когато предам само един аргумент на JSON_OBJECT()
:
SELECT JSON_OBJECT("name");
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Същата грешка възниква, ако предам три аргумента:
SELECT JSON_OBJECT("name", "Homer", "type");
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
И така нататък...
Имена на нулеви ключове
Документацията на MariaDB посочва, че се връща грешка, ако име на ключ е NULL
.
Въпреки това получавам различен резултат:
SELECT JSON_OBJECT(null, null);
Резултат:
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+