V MySQL můžete použít JSON_OBJECT() funkce k vytvoření objektu JSON ze seznamu párů klíč/hodnota. Každý pár klíč/hodnota poskytujete jako dva samostatné argumenty. Každý pár se ve výsledném objektu JSON stane párem klíč/hodnota.
Musíte zadat sudý počet argumentů (jinak byste měli v seznamu argumentů neúplný pár).
Funkce také přijímá prázdný seznam (tj. nezadáte žádné argumenty). V tomto případě získáte prázdný objekt.
Syntaxe
Syntaxe vypadá takto:
JSON_OBJECT([key, val[, key, val] ...])
Hranaté závorky označují volitelný argument. Proto je docela rozumné používat tuto funkci bez předávání jakýchkoli argumentů.
Příklad 1 – Základní použití
Zde je příklad k demonstraci.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', 139693) AS 'Result';
Výsledek:
+------------------------------------------+
| Result |
+------------------------------------------+
| {"City": "Cairns", "Population": 139693} |
+------------------------------------------+
Příklad 2 – Prázdné řetězce
Prázdné řetězce jsou platné.
SELECT JSON_OBJECT('City', '', 'Population', 139693) AS 'Result';
Výsledek:
+------------------------------------+
| Result |
+------------------------------------+
| {"City": "", "Population": 139693} |
+------------------------------------+
To platí také pro klíč:
SELECT JSON_OBJECT('', 'Cairns', 'Population', 139693) AS 'Result';
Výsledek:
+--------------------------------------+
| Result |
+--------------------------------------+
| {"": "Cairns", "Population": 139693} |
+--------------------------------------+
Příklad 3 – Prázdné seznamy
Prázdné seznamy jsou také platné. Výsledkem bude prázdný objekt JSON.
SELECT JSON_OBJECT() AS 'Result';
Výsledek:
+--------+
| Result |
+--------+
| {} |
+--------+
Příklad 4 – hodnoty NULL
hodnota část páru klíč/hodnota může obsahovat hodnoty NULL.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', NULL) AS 'Result';
Výsledek:
+----------------------------------------+
| Result |
+----------------------------------------+
| {"City": "Cairns", "Population": null} |
+----------------------------------------+
Ale klíč část nemůže obsahovat hodnoty NULL. Pokud má klíč hodnotu NULL, dojde k chybě.
SELECT JSON_OBJECT('City', 'Cairns', NULL, 139693) AS 'Result';
Výsledek:
ERROR 3158 (22032): JSON documents may not contain NULL member names.