Função JSON_DEPTH() do MySQL

Resumo : neste tutorial você aprenderá como usar a JSON_DEPTH()função para obter a profundidade máxima de um documento JSON.

Introdução à função JSON_DEPTH() do MySQL

A JSON_DEPTH()função retorna a profundidade de um documento JSON. Ele calcula a profundidade máxima de objetos ou matrizes aninhados nos dados JSON.

Aqui está a sintaxe da JSON_DEPTH()função:

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

Nesta sintaxe:

  • json_docé o documento JSON do qual você deseja obter a profundidade.

A função retorna um número inteiro que representa a profundidade máxima do documento JSON.

Ele retorna NULLse json_docfor NULL. Se json_docnão for um documento JSON válido, a função gerará um erro.

A JSON_DEPTH()função segue regras específicas para calcular a profundidade de um documento JSON:

  • Uma matriz vazia, um objeto vazio ou um valor escalar tem profundidade 1.
  • Uma matriz não vazia contendo apenas elementos de profundidade 1 ou um objeto não vazio contendo apenas valores de membros de profundidade 1 tem profundidade 2.
  • Caso contrário, um documento JSON terá profundidade maior que 2.

Na prática, você usa a JSON_DEPTH()função para analisar a estrutura de documentos JSON complexos.

Exemplos de funções JSON_DEPTH() do MySQL

Vamos explorar alguns exemplos práticos de uso da JSON_DEPTH()função no MySQL para ilustrar as regras de cálculo de profundidade.

1) Objeto JSON vazio

O exemplo a seguir usa a JSON_DEPTH()função para obter a profundidade máxima de um objeto JSON vazio:

SELECT 
  JSON_DEPTH('{}') AS depth;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Ele retorna 1:

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

2) Matriz JSON não vazia com elementos de profundidade 1

O exemplo a seguir usa a JSON_DEPTH()função para obter a profundidade máxima de uma matriz que contém apenas valores escalares:

SELECT 
  JSON_DEPTH('[1, "apple", true]') AS depth;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

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

3) Objeto JSON complexo

O exemplo a seguir usa a JSON_DEPTH()função para obter a profundidade máxima de um objeto que contém objetos aninhados:

SELECT 
  JSON_DEPTH(
    '{"name": "John", "address": {"street": "123 Main St", "city": "New York"}, "hobbies": ["reading", "swimming"]}'
  ) AS depth;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

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

Resumo

  • Use a JSON_DEPTH()função para retornar a profundidade máxima de um documento JSON.

Deixe um comentário

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