I MySQL kan du bruge JSON_OBJECT()
funktion til at oprette et JSON-objekt fra en liste over nøgle/værdi-par. Du angiver hvert nøgle/værdi-par som to separate argumenter. Hvert par bliver et nøgle/værdi-par i det resulterende JSON-objekt.
Du skal angive et lige antal argumenter (ellers ville du have et ufuldstændigt par et eller andet sted på din liste over argumenter).
Funktionen accepterer også en tom liste (dvs. du angiver ingen argumenter). I dette tilfælde får du et tomt objekt.
Syntaks
Syntaksen ser sådan ud:
JSON_OBJECT([key, val[, key, val] ...])
De firkantede parenteser angiver et valgfrit argument. Derfor er det ganske gyldigt at bruge denne funktion uden at sende nogen argumenter ind.
Eksempel 1 – Grundlæggende brug
Her er et eksempel til at demonstrere.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', 139693) AS 'Result';
Resultat:
+------------------------------------------+ | Result | +------------------------------------------+ | {"City": "Cairns", "Population": 139693} | +------------------------------------------+
Eksempel 2 – Tomme strenge
Tomme strenge er gyldige.
SELECT JSON_OBJECT('City', '', 'Population', 139693) AS 'Result';
Resultat:
+------------------------------------+ | Result | +------------------------------------+ | {"City": "", "Population": 139693} | +------------------------------------+
Dette gælder også for nøglen:
SELECT JSON_OBJECT('', 'Cairns', 'Population', 139693) AS 'Result';
Resultat:
+--------------------------------------+ | Result | +--------------------------------------+ | {"": "Cairns", "Population": 139693} | +--------------------------------------+
Eksempel 3 – Tomme lister
Tomme lister er også gyldige. Dette vil resultere i et tomt JSON-objekt.
SELECT JSON_OBJECT() AS 'Result';
Resultat:
+--------+ | Result | +--------+ | {} | +--------+
Eksempel 4 – NULL-værdier
værdien en del af nøgle/værdi-parret kan indeholde NULL-værdier.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', NULL) AS 'Result';
Resultat:
+----------------------------------------+ | Result | +----------------------------------------+ | {"City": "Cairns", "Population": null} | +----------------------------------------+
Men nøglen del kan ikke indeholde NULL-værdier. Hvis en nøgle har en NULL-værdi, vil der opstå en fejl.
SELECT JSON_OBJECT('City', 'Cairns', NULL, 139693) AS 'Result';
Resultat:
ERROR 3158 (22032): JSON documents may not contain NULL member names.