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 NULL
se json_doc
for NULL
. Se json_doc
nã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.