I MariaDB, JSON_OBJECT()
er en indbygget funktion, der returnerer et JSON-objekt, der indeholder nøgle/værdi-parrene angivet som argumenter.
Syntaks
Syntaksen ser sådan ud:
JSON_OBJECT([key, value[, key, value] ...])
Funktionen accepterer et vilkårligt antal nøgle/værdi-par.
Nøgle-/værdilisten kan også være tom.
Eksempel
Her er et simpelt eksempel til at demonstrere funktionen:
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
Resultat:
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
Ingen argumenter
Som nævnt kan argumentlisten være tom, i hvilket tilfælde et tomt objekt returneres:
SELECT JSON_OBJECT();
Resultat:
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
Forkert parameterantal
Men hvis du angiver argumenter, skal de være et lige antal argumenter (så at hver nøgle har en tilsvarende værdi).
Her er, hvad der sker, når jeg sender kun ét argument til JSON_OBJECT()
:
SELECT JSON_OBJECT("name");
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Samme fejl opstår, hvis jeg sender tre argumenter:
SELECT JSON_OBJECT("name", "Homer", "type");
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Og så videre...
Nulnøglenavne
MariaDB-dokumentationen angiver, at der returneres en fejl, hvis et nøglenavn er NULL
.
Jeg får dog et andet resultat:
SELECT JSON_OBJECT(null, null);
Resultat:
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+