В MySQL можете да използвате JSON_OBJECT()
функция за създаване на JSON обект от списък с двойки ключ/стойност. Вие предоставяте всяка двойка ключ/стойност като два отделни аргумента. Всяка двойка става двойка ключ/стойност в получения JSON обект.
Трябва да предоставите четен брой аргументи (в противен случай ще имате непълна двойка някъде в списъка си с аргументи).
Функцията също така приема празен списък (т.е. не предоставяте аргументи). В този случай ще получите празен обект.
Синтаксис
Синтаксисът е така:
JSON_OBJECT([key, val[, key, val] ...])
Квадратните скоби показват незадължителен аргумент. Следователно е напълно валидно да използвате тази функция, без да предавате никакви аргументи.
Пример 1 – Основна употреба
Ето пример за демонстрация.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', 139693) AS 'Result';
Резултат:
+------------------------------------------+ | Result | +------------------------------------------+ | {"City": "Cairns", "Population": 139693} | +------------------------------------------+
Пример 2 – Празни низове
Празните низове са валидни.
SELECT JSON_OBJECT('City', '', 'Population', 139693) AS 'Result';
Резултат:
+------------------------------------+ | Result | +------------------------------------+ | {"City": "", "Population": 139693} | +------------------------------------+
Това важи и за ключа:
SELECT JSON_OBJECT('', 'Cairns', 'Population', 139693) AS 'Result';
Резултат:
+--------------------------------------+ | Result | +--------------------------------------+ | {"": "Cairns", "Population": 139693} | +--------------------------------------+
Пример 3 – Празни списъци
Празните списъци също са валидни. Това ще доведе до празен JSON обект.
SELECT JSON_OBJECT() AS 'Result';
Резултат:
+--------+ | Result | +--------+ | {} | +--------+
Пример 4 – NULL стойности
Стойността част от двойката ключ/стойност може да съдържа стойности NULL.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', NULL) AS 'Result';
Резултат:
+----------------------------------------+ | Result | +----------------------------------------+ | {"City": "Cairns", "Population": null} | +----------------------------------------+
Но ключ част не може да съдържа NULL стойности. Ако ключът има стойност NULL, ще възникне грешка.
SELECT JSON_OBJECT('City', 'Cairns', NULL, 139693) AS 'Result';
Резултат:
ERROR 3158 (22032): JSON documents may not contain NULL member names.