W MySQL możesz użyć JSON_OBJECT() funkcja do tworzenia obiektu JSON z listy par klucz/wartość. Każdą parę klucz/wartość podajesz jako dwa oddzielne argumenty. Każda para staje się parą klucz/wartość w wynikowym obiekcie JSON.
Musisz podać parzystą liczbę argumentów (w przeciwnym razie miałbyś niekompletną parę gdzieś na liście argumentów).
Funkcja akceptuje również pustą listę (tzn. nie podajesz żadnych argumentów). W takim przypadku otrzymasz pusty obiekt.
Składnia
Składnia wygląda tak:
JSON_OBJECT([key, val[, key, val] ...])
Nawiasy kwadratowe wskazują opcjonalny argument. Dlatego używanie tej funkcji bez przekazywania jakichkolwiek argumentów jest całkiem prawidłowe.
Przykład 1 – Podstawowe użycie
Oto przykład do zademonstrowania.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', 139693) AS 'Result';
Wynik:
+------------------------------------------+
| Result |
+------------------------------------------+
| {"City": "Cairns", "Population": 139693} |
+------------------------------------------+
Przykład 2 – Puste ciągi
Puste ciągi są prawidłowe.
SELECT JSON_OBJECT('City', '', 'Population', 139693) AS 'Result';
Wynik:
+------------------------------------+
| Result |
+------------------------------------+
| {"City": "", "Population": 139693} |
+------------------------------------+
Dotyczy to również klucza:
SELECT JSON_OBJECT('', 'Cairns', 'Population', 139693) AS 'Result';
Wynik:
+--------------------------------------+
| Result |
+--------------------------------------+
| {"": "Cairns", "Population": 139693} |
+--------------------------------------+
Przykład 3 – Puste listy
Obowiązują również puste listy. Spowoduje to powstanie pustego obiektu JSON.
SELECT JSON_OBJECT() AS 'Result';
Wynik:
+--------+
| Result |
+--------+
| {} |
+--------+
Przykład 4 – wartości NULL
Wartość część pary klucz/wartość może zawierać wartości NULL.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', NULL) AS 'Result';
Wynik:
+----------------------------------------+
| Result |
+----------------------------------------+
| {"City": "Cairns", "Population": null} |
+----------------------------------------+
Ale klucz część nie może zawierać wartości NULL. Jeśli klucz ma wartość NULL, wystąpi błąd.
SELECT JSON_OBJECT('City', 'Cairns', NULL, 139693) AS 'Result';
Wynik:
ERROR 3158 (22032): JSON documents may not contain NULL member names.