Função JSON_OBJECT() do MySQL

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 NULLou 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 30e "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 employeestabela do banco de dados de exemplo .

O exemplo a seguir cria objetos JSON dinamicamente usando valores das colunas firstNamee email da employeestabela:

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.

Deixe um comentário

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