Resumo : neste tutorial, você aprenderá como usar a JSON_OBJECT()
função para criar um objeto JSON a partir de uma lista de pares chave-valor.
Introdução à função JSON_OBJECT() do MySQL
A JSON_OBJECT()
função permite criar um objeto JSON a partir de uma lista de pares de valores-chave.
Aqui está a sintaxe da JSON_OBJECT()
função:
JSON_OBJECT([key1, value1, key2, value2, ...])
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
key1
,key2
,…: uma lista de chaves para o objeto JSON.value1
,value2
, …: uma lista de valores correspondentes para o objeto JSON.
A JSON_OBJECT()
função retorna um objeto JSON cujos nomes e valores de propriedades são os pares chave/valor correspondentes.
A função gera um erro se alguma chave for NULL
ou se o número de argumentos que você passa para a função for ímpar.
Exemplos de funções JSON_OBJECT() do MySQL
Vejamos alguns exemplos de uso da JSON_OBJECT()
função
1) Criando um objeto JSON simples
O exemplo a seguir usa a JSON_OBJECT()
função para criar um objeto JSON simples a partir de uma lista de pares de valores-chave:
SELECT
JSON_OBJECT(
'name', 'John', 'age', 30
) result;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+-----------------------------+
| result |
+-----------------------------+
| {"age": 30, "name": "John"} |
+-----------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O objeto de resultado possui duas chaves "age"
e "name"
com os valores correspondentes 30
e "John"
.
2) Criando um objeto JSON aninhado
O exemplo a seguir usa a JSON_OBJECT()
função para criar um objeto JSON aninhado:
SELECT
JSON_PRETTY(
JSON_OBJECT(
'name',
'John',
'age',
30,
'phones',
JSON_OBJECT(
'home', '408-999-9999', 'work', '408-111-2222'
)
)
) result;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+-------------------------------------------------------------------------------------------------------------+
| result |
+-------------------------------------------------------------------------------------------------------------+
| {
"age": 30,
"name": "John",
"phones": {
"home": "408-999-9999",
"work": "408-111-2222"
}
} |
+-------------------------------------------------------------------------------------------------------------+
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Combinando JSON_OBJECT() com a função JSON_ARRAY()
O exemplo a seguir usa a JSON_OBJECT()
função com a função JSON_ARRAY() para criar uma matriz de objetos JSON:
SELECT
JSON_ARRAY(
JSON_OBJECT('name', 'John', 'age', 25),
JSON_OBJECT('name', 'Jane', 'age', 28)
) result;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+------------------------------------------------------------+
| result |
+------------------------------------------------------------+
| [{"age": 25, "name": "John"}, {"age": 28, "name": "Jane"}] |
+------------------------------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
4) Criando objetos JSON dinamicamente
Usaremos a employees
tabela do banco de dados de exemplo .
O exemplo a seguir cria objetos JSON dinamicamente usando valores das colunas firstName
e email
da employees
tabela:
SELECT
JSON_OBJECT(
'firstName', firstName, 'email', email
) result
FROM
employees;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----------------------------------------------------------------------+
| result |
+----------------------------------------------------------------------+
| {"email": "[email protected]", "firstName": "Diane"} |
| {"email": "[email protected]", "firstName": "Mary"} |
| {"email": "[email protected]", "firstName": "Jeff"} |
...
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
5) Casos de erro
O exemplo a seguir tenta criar um objeto JSON usando a JSON_OBJECT()
função, mas encontra um erro devido a um número ímpar de argumentos:
SELECT
JSON_OBJECT(
'firstName', firstName, 'email'
) result
FROM
employees;
Linguagem de código: JavaScript ( javascript )
Saída:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
Linguagem de código: JavaScript ( javascript )
Resumo
- Use a
JSON_OBJECT()
função para criar um objeto JSON a partir de uma lista de pares de valores-chave.