Resumo : neste tutorial, você aprenderá como usar a JSON_ARRAY()
função MySQL para criar um array JSON de uma lista de valores.
Introdução à função JSON_ARRAY do MySQL
Uma matriz JSON é uma lista ordenada de valores entre colchetes. Por exemplo:
["John", "Doe", 25, "MySQL Developer"]
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
No MySQL, a JSON_ARRAY()
função é usada para criar um array JSON a partir de uma lista de valores.
Aqui está a sintaxe da JSON_ARRAY()
função:
JSON_ARRAY(value1, value2, …)
Nesta sintaxe, você especifica um ou mais valores separados por vírgulas, como value1
, value2
,…. Esses são valores que você deseja incluir na matriz JSON.
A JSON_ARRAY()
função retorna uma matriz JSON dos valores de entrada.
A JSON_ARRAY()
função é útil quando você precisa gerar matrizes JSON a partir de dados existentes em seu banco de dados.
Os exemplos da função JSON_ARRAY() do MySQL
Vejamos alguns exemplos de uso da JSON_ARRAY()
função.
1) Criando uma matriz JSON
O exemplo a seguir usa a JSON_ARRAY()
função para criar uma matriz JSON:
SELECT
JSON_ARRAY('John','Doe', 25, 'MySQL Developer');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A consulta retorna a seguinte matriz JSON:
+-------------------------------------------------+
| JSON_ARRAY('John','Doe', 25, 'MySQL Developer') |
+-------------------------------------------------+
| ["John", "Doe", 25, "MySQL Developer"] |
+-------------------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Criando um array JSON a partir de dados da tabela
Usaremos a employees
tabela do banco de dados de exemplo para a demonstração:
O exemplo a seguir usa a JSON_ARRAY()
função para criar uma matriz JSON do nome, email e cargo dos funcionários números 1002 e 1056:
SELECT
JSON_ARRAY(firstName, email, jobTitle)
FROM
employees
WHERE
employeeNumber IN (1002, 1056);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------------------------------------------------------+
| JSON_ARRAY(firstName, email, jobTitle) |
+--------------------------------------------------------+
| ["Diane", "[email protected]", "President"] |
| ["Mary", "[email protected]", "VP Sales"] |
+--------------------------------------------------------+
2 rows in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Você pode usar a JSON_PRETTY()
função para formatar as matrizes JSON da seguinte maneira:
SELECT
JSON_PRETTY(
JSON_ARRAY(firstName, email, jobTitle)
)
FROM
employees
WHERE
employeeNumber IN (1002, 1056);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----------------------------------------------------------------+
| JSON_PRETTY(JSON_ARRAY(firstName, email, jobTitle)) |
+----------------------------------------------------------------+
| [
"Diane",
"[email protected]",
"President"
] |
| [
"Mary",
"[email protected]",
"VP Sales"
] |
+----------------------------------------------------------------+
2 rows in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Armazenando arrays JSON em uma tabela
Primeiro, crie uma tabela para armazenar dados JSON:
CREATE TABLE contacts(
employeeNumber INT PRIMARY KEY,
data JSON
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, crie arrays JSON usando a JSON_ARRAY()
função e armazene-os na contacts
tabela:
INSERT INTO contacts(employeeNumber, data)
SELECT
employeeNumber,
JSON_ARRAY(firstName, extension, email)
FROM
employees;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, começamos usando a JSON_ARRAY()
função para criar um array JSON contendo o nome, extensão e email de cada funcionário. Posteriormente, usamos a instrução INSERT INTO SELECT para inserir os dados na contacts
tabela.
Terceiro, recupere os dados da contacts
tabela:
SELECT * FROM contacts;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída parcial:
+----------------+---------------------------------------------------------+
| employeeNumber | data |
+----------------+---------------------------------------------------------+
| 1002 | ["Diane", "x5800", "[email protected]"] |
| 1056 | ["Mary", "x4611", "[email protected]"] |
| 1076 | ["Jeff", "x9273", "[email protected]"] |
| 1088 | ["William", "x4871", "[email protected]"] |
...
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use a
JSON_ARRAY()
função para criar uma matriz JSON a partir de uma lista de valores.