Resumo : neste tutorial, você aprenderá como usar a JSON_LENGTH()
função MySQL para obter o comprimento de um documento JSON.
Introdução à função JSON_LENGTH() do MySQL
A JSON_LENGTH()
função retorna o comprimento de um documento JSON. Aqui está a sintaxe da JSON_LENGTH()
função:
JSON_LENGTH(json_doc[, path])
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
json_doc
: este é o documento JSON cujo comprimento você deseja obter.path
: Este é um argumento opcional. Se você fornecer o path , aJSON_LENGTH()
função retornará o comprimento do valorjson_doc
localizado pelo path.
A JSON_LENGTH()
função retorna NULL
se algum argumento for NULL
ou o caminho não identificar nenhum valor no documento JSON.
A JSON_LENGTH()
função gera um erro se json_doc
não for um documento JSON válido ou se o caminho não for uma expressão de caminho válida.
O JSON_LENGTH
calcula o comprimento de um documento JSON da seguinte maneira:
- Um escalar tem comprimento 1.
- Uma matriz tem o comprimento igual ao número de elementos da matriz.
- Um objeto tem o comprimento igual ao número de membros do objeto.
A função não considera o comprimento de arrays ou objetos aninhados.
Exemplo de função JSON_LENGTH() do MySQL
Vejamos alguns exemplos de uso da JSON_LENGTH()
função.
1) Obtendo o comprimento de um escalar
O exemplo a seguir usa a JSON_LENGTH()
função para retornar o comprimento de um escalar:
SELECT
JSON_LENGTH('"Hello"') length;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------+
| length |
+--------+
| 1 |
+--------+
1 row in set (0.01 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Obtendo o comprimento de um array
O exemplo a seguir usa a JSON_LENGTH()
função para retornar o número de elementos em uma matriz:
SELECT
JSON_LENGTH('[1, 2, 3]') length;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------+
| length |
+--------+
| 3 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Obtendo o comprimento de um objeto
O exemplo a seguir usa a JSON_LENGTH()
função para retornar o número de membros em um objeto:
SELECT
JSON_LENGTH('{"name": "John", "age": 22}') length;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------+
| length |
+--------+
| 2 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
4) Obtendo o comprimento de um objeto que possui uma matriz aninhada
O exemplo a seguir usa a JSON_LENGTH()
função para retornar o número de membros em um objeto que possui uma propriedade que é uma matriz. Não conta o comprimento da matriz aninhada.
SELECT
JSON_LENGTH(
'{"name": "John", "age": 22, "skills":["PHP","MySQL","JavaScript"]}'
) length;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------+
| length |
+--------+
| 3 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
5) Obtendo o comprimento de um valor especificado por um caminho
O exemplo a seguir usa a JSON_LENGTH()
função para retornar o número de elementos de um array identificado por um caminho:
SELECT
JSON_LENGTH(
'{"name": "John", "age": 22, "skills":["PHP","MySQL"]}',
'$.skills'
) length;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------+
| length |
+--------+
| 2 |
+--------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use a
JSON_LENGTH()
função para determinar o comprimento de um documento JSON, que é o número de elementos em uma matriz JSON ou o número de pares de valores-chave em um objeto JSON.