В 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.