Caminho JSON do MySQL

Resumo : neste tutorial, você aprenderá sobre o caminho JSON do MySQL e como usá-lo para especificar e navegar pelos elementos em um documento JSON.

Qual é o caminho JSON?

O caminho JSON é uma forma de especificar e navegar pelos elementos em um documento JSON. Ele serve como um roteiro para localizar dados específicos em uma estrutura JSON.

No MySQL, você pode usar expressões de caminho JSON para localizar elementos em um documento JSON.

Elementos de sintaxe do caminho JSON do MySQL

A seguir descrevemos os principais elementos da sintaxe do caminho JSON:

Escopo ($) : O escopo representa o documento JSON, que serve como sua raiz.

Pernas do caminho : Um caminho pode consistir em uma ou mais pernas do caminho. Existem três tipos de pernas de caminho:

  • Membro : usando um ponto final ( .) seguido de um nome de chave ou asterisco (*). O membro é usado para acessar um membro de um objeto.
  • Localização do array : usando colchetes ( []) para acessar os elementos do array por seus índices (N) ou usar um asterisco para acessar todos os elementos em um array.
  • Asterisco Duplo (**) : Este é um token especial que representa uma pesquisa recursiva para todos os caminhos dentro do documento JSON.

Nomes de chaves : os nomes das chaves são colocados entre aspas duplas ou podem ser ECMAScriptidentificadores válidos, especificando os nomes das chaves em um objeto JSON.

Exemplos de caminhos JSON do MySQL

Vamos explorar alguns exemplos de uso de expressões de caminho JSON para especificar elementos em um documento JSON.

1) Acessando uma chave específica em um objeto

Suponha que você tenha um documento JSON que representa informações sobre uma pessoa:

{
   "name": "John",
   "age": 25,
   "job": "MySQL Developer"
}Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para acessar a chave de idade, você pode usar a seguinte expressão de caminho:

"$.age"Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta expressão, the $representa a raiz do documento. O ponto final (.) permite acessar um membro de um objeto JSON. O ageé o nome do membro do objeto.

O seguinte usa a JSON_EXTRACT()função para extrair o agevalor do objeto JSON acima:

SELECT 
  JSON_EXTRACT(
    '{"name":"John","age":25,"job":"MySQL Developer"}', 
    "$.age"
  ) ageLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

25Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A consulta retorna 25 conforme esperado.

2) Acessando todos os membros em um objeto

O caminho a seguir acessa todos os membros do objeto:

'$.*'Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste caminho:

  • O $representa a raiz do documento JSON
  • O ponto final ( .) permite acesso a um ou mais membros de um objeto.
  • O *significa todos os membros de um objeto.

Aqui está a consulta que usa o caminho "$.*"para extrair todos os valores dos membros de um objeto JSON:

SELECT 
  JSON_EXTRACT(
    '{"name":"John","age":25,"job":"MySQL Developer"}', 
    "$.*"
  ) properties;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------------------------------+
| properties                      |
+---------------------------------+
| [25, "MySQL Developer", "John"] |
+---------------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A JSON_EXTRACT()função retorna uma matriz JSON contendo os valores de todos os membros do objeto JSON.

3) Acessando um elemento do array pelo seu índice

Suponha que você tenha o seguinte array JSON:

["PHP", "MySQL", "JavaScript"]Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para acessar o segundo elemento do array, você usa a expressão path:

'$[1]'Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O exemplo a seguir usa o JSON_EXTRACT()método para recuperar o segundo elemento da matriz:

SELECT 
  JSON_EXTRACT(
    '["PHP","MySQL","JavaScript"]', 
    "$[1]"
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------+
| result  |
+---------+
| "MySQL" |
+---------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

4) Acessando todos os elementos de um array

Para acessar todos os elementos em um array JSON, você usa a expressão path:

'$[*]'Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta expressão de caminho:

  • $representa a raiz do documento JSON.
  • []acessa elementos da matriz.
  • *significa todos os elementos.

O exemplo a seguir usa a JSON_EXTRACT()função para obter todos os elementos do array:

SELECT 
  JSON_EXTRACT(
    '["PHP","MySQL","JavaScript"]', 
    "$[*]"
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Ele retorna uma matriz JSON que contém todos os elementos da matriz JSON no documento JSON original:

+--------------------------------+
| result                         |
+--------------------------------+
| ["PHP", "MySQL", "JavaScript"] |
+--------------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

5) Combinando pernas do caminho

Suponha que você tenha o seguinte documento JSON:

{
  "name": "John",
  "age": 25,
  "job": "MySQL Developer",
  "skills": [
    "PHP",
    "MySQL",
    "JavaScript"
  ]
}Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A seguinte expressão de caminho acessa o segundo elemento da skillsmatriz no documento JSON:

$.skills[1]Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Aqui está a consulta que extrai o segundo elemento do skillsarray no documento JSON:

SELECT 
  JSON_EXTRACT(
    '{"name":"John","age":25,"job":"MySQL Developer","skills":["PHP","MySQL","JavaScript"]}', 
    "$.skills[1]"
  ) result;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+---------+
| result  |
+---------+
| "MySQL" |
+---------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use o caminho JSON para navegar pelos elementos em um documento JSON.
  • Use o dólar ( $) como o documento JSON atual.
  • Use o ponto final ( .) para acessar um membro de um objeto.
  • Use o [N]para acessar o (N-1) -ésimo elemento de uma matriz.
  • Use o asterisco ( *) para acessar todos os membros de um objeto ou todos os elementos de um array.

Deixe um comentário

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