I MariaDB, JSON_OBJECT()
är en inbyggd funktion som returnerar ett JSON-objekt som innehåller nyckel/värdeparen som tillhandahålls som argument.
Syntax
Syntaxen ser ut så här:
JSON_OBJECT([key, value[, key, value] ...])
Funktionen accepterar valfritt antal nyckel-/värdepar.
Nyckel-/värdelistan kan också vara tom.
Exempel
Här är ett enkelt exempel för att demonstrera funktionen:
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
Resultat:
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
Inga argument
Som nämnts kan argumentlistan vara tom, i vilket fall kommer ett tomt objekt att returneras:
SELECT JSON_OBJECT();
Resultat:
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
Felaktig parameterräkning
Men om du anger argument måste de vara ett jämnt antal argument (så att varje nyckel har ett motsvarande värde).
Här är vad som händer när jag skickar bara ett argument till JSON_OBJECT()
:
SELECT JSON_OBJECT("name");
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Samma fel uppstår om jag skickar tre argument:
SELECT JSON_OBJECT("name", "Homer", "type");
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Och så vidare...
Nullnyckelnamn
MariaDB-dokumentationen anger att ett fel returneras om något nyckelnamn är NULL
.
Däremot får jag ett annat resultat:
SELECT JSON_OBJECT(null, null);
Resultat:
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+