No MySQL, você pode usar o
JSON_OBJECT()
função para criar um objeto JSON de uma lista de pares chave/valor. Você fornece cada par de chave/valor como dois argumentos separados. Cada par se torna um par chave/valor no objeto JSON resultante. Você deve fornecer um número par de argumentos (caso contrário, você teria um par incompleto em algum lugar da sua lista de argumentos).
A função também aceita uma lista vazia (ou seja, você não fornece argumentos). Nesse caso, você obterá um objeto vazio.
Sintaxe
A sintaxe fica assim:
JSON_OBJECT([key, val[, key, val] ...])
Os colchetes indicam um argumento opcional. Portanto, é bastante válido usar esta função sem passar nenhum argumento.
Exemplo 1 – Uso básico
Aqui está um exemplo para demonstrar.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', 139693) AS 'Result';
Resultado:
+------------------------------------------+ | Result | +------------------------------------------+ | {"City": "Cairns", "Population": 139693} | +------------------------------------------+
Exemplo 2 – Strings vazias
Strings vazias são válidas.
SELECT JSON_OBJECT('City', '', 'Population', 139693) AS 'Result';
Resultado:
+------------------------------------+ | Result | +------------------------------------+ | {"City": "", "Population": 139693} | +------------------------------------+
Isso também se aplica à chave:
SELECT JSON_OBJECT('', 'Cairns', 'Population', 139693) AS 'Result';
Resultado:
+--------------------------------------+ | Result | +--------------------------------------+ | {"": "Cairns", "Population": 139693} | +--------------------------------------+
Exemplo 3 – Listas vazias
Listas vazias também são válidas. Isso resultará em um objeto JSON vazio.
SELECT JSON_OBJECT() AS 'Result';
Resultado:
+--------+ | Result | +--------+ | {} | +--------+
Exemplo 4 – Valores NULOS
O valor parte do par chave/valor pode conter valores NULL.
SELECT JSON_OBJECT('City', 'Cairns', 'Population', NULL) AS 'Result';
Resultado:
+----------------------------------------+ | Result | +----------------------------------------+ | {"City": "Cairns", "Population": null} | +----------------------------------------+
Mas a chave parte não pode conter valores NULL. Se uma chave tiver um valor NULL, ocorrerá um erro.
SELECT JSON_OBJECT('City', 'Cairns', NULL, 139693) AS 'Result';
Resultado:
ERROR 3158 (22032): JSON documents may not contain NULL member names.