Função MySQL JSON_ARRAY()

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 employeestabela 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 contactstabela:

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 contactstabela.

Terceiro, recupere os dados da contactstabela:

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *