MySQL JSON_VALID() Function
A função `JSON_VALID()` do MySQL verifica se um documento JSON é válido. Ele retorna `1` se o JSON for válido e `0` se não for.
Uso
A função `JSON_VALID()` é usada para validar documentos JSON armazenados em um banco de dados, garantindo que eles sigam a formatação JSON adequada. É particularmente útil para verificações de integridade de dados antes de realizar operações em campos JSON. Observe que `JSON_VALID()` verifica apenas a validade sintática e não avalia a correção semântica, como erros lógicos no conteúdo JSON.
JSON_VALID(json_doc)
Nessa sintaxe, `json_doc` é o documento JSON que você deseja validar.
Exemplos
1. Validação básica
SELECT JSON_VALID('{"name": "John", "age": 30}');
Este exemplo verifica se a cadeia de caracteres JSON é válida e retorna `1`, pois o JSON está formatado corretamente.
2. Verificação de JSON inválido
SELECT JSON_VALID('{"name": "John, "age": 30}');
Aqui, a função retorna `0` porque a cadeia JSON é inválida devido à falta de uma aspa após `"John"`.
3. Validação em uma tabela
SELECT id, data, JSON_VALID(data) AS is_valid
FROM json_table;
Neste exemplo, os dados JSON de cada linha na `json_table` são validados, com os resultados exibidos em uma nova coluna chamada `is_valid`.
Dicas e práticas recomendadas
- Valide antes de armazenar. Sempre use `JSON_VALID()` para verificar os dados JSON antes de inserir ou atualizar para garantir a integridade dos dados.
- Use com declarações condicionais. Combine `JSON_VALID()` com cláusulas `WHERE` para filtrar registros JSON inválidos durante a recuperação de dados.
- Otimize o tratamento de dados. Valide regularmente os campos JSON para evitar problemas nos aplicativos que dependem de dados JSON. Tenha em mente as implicações de desempenho ao validar documentos JSON grandes.
- Identificação de erros. Embora `JSON_VALID()` retorne apenas um booleano, use-o em conjunto com o registro de erros para identificar e corrigir entradas JSON inválidas.
- Nota de compatibilidade. O `JSON_VALID()` foi introduzido no MySQL 5.7.8. Certifique-se de que sua versão seja compatível com essa função se você estiver trabalhando em versões mais antigas do MySQL.