Resumo : neste tutorial, você aprenderá como usar a JSON_SCHEMA_VALID()
função MySQL para validar um documento JSON em um esquema JSON.
Introdução à função JSON_SCHEMA_VALID() do MySQL
Um esquema JSON é um documento que descreve a estrutura dos dados JSON . Ele define os tipos de dados, restrições e relacionamentos entre diferentes partes do documento JSON. Resumindo, serve como modelo para validar a estrutura de um documento JSON.
No MySQL, a JSON_SCHEMA_VALID()
função permite verificar se um determinado documento JSON é válido em relação a um esquema JSON especificado. Retorna verdadeiro (1) se o documento JSON for válido de acordo com o esquema e falso (0) caso contrário.
Aqui está a sintaxe da JSON_SCHEMA_VALID()
função:
JSON_SCHEMA_VALID(json_schema, json_document)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
json_schema
: este é o esquema JSON no qual o documento é validado.json_document
: este é o documento JSON que você deseja validar.
Exemplo de função JSON_SCHEMA_VALID() do MySQL
Vamos dar um exemplo simples para ilustrar como usar JSON_SCHEMA_VALID()
a função.
Primeiro, crie uma nova tabela chamada employees
:
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
details JSON
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira os dados na employees
tabela:
INSERT INTO employees (details)
VALUES ('{"name": "John", "age": 30, "department": "HR"}'),
('{"name": "Alice", "age": 25, "department": "IT"}');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O seguinte define um esquema JSON que especifica a estrutura esperada para detalhes do funcionário:
SET @employee_schema = '{
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
"department": {"type": "string"}
},
"required": ["name", "age", "department"]
}';
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O esquema define um objeto com três propriedades obrigatórias: nome (string), idade (inteiro) e departamento (string).
Agora, você pode usar JSON_SCHEMA_VALID()
a função para verificar se os documentos JSON armazenados aderem ao esquema definido:
SELECT
id,
JSON_SCHEMA_VALID(@employee_schema, details) AS is_valid
FROM
employees;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Esta consulta retorna um conjunto de resultados com o funcionário IDs
e um booleano indicando se os detalhes de cada funcionário são válidos de acordo com o esquema especificado:
+----+----------+
| id | is_valid |
+----+----------+
| 1 | 1 |
| 2 | 1 |
+----+----------+
2 rows in set (0.01 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
As seguintes tentativas de inserir um funcionário que não possui as informações de idade:
INSERT INTO employees (details)
VALUES ('{"name": "Bob", "department": "Finance"}');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Agora, ao executar a consulta de validação novamente, você verá que a nova entrada está marcada como inválida:
SELECT
id,
JSON_SCHEMA_VALID(@employee_schema, details) AS is_valid
FROM
employees;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----+----------+
| id | is_valid |
+----+----------+
| 1 | 1 |
| 2 | 1 |
| 3 | 0 |
+----+----------+
3 rows in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use a
JSON_SCHEMA_VALID()
função para validar documentos JSON em um esquema especificado.