3140: ER_INVALID_JSON_TEXT: Invalid JSON text
MySQLO que significa?
Um texto JSON inválido (sintaticamente quebrado) foi passado para uma coluna JSON ou função JSON. O MySQL rejeita a operação porque não consegue interpretar o valor como JSON.
Por que acontece?
Aspas/colchetes não fechados, vírgula sobrando no final, aspas simples, erros em caracteres de escape ou texto puro enviado a uma coluna JSON. Ocorre quando texto malformado é passado a funções como JSON_SET, JSON_INSERT ou a uma coluna do tipo JSON.
Como resolver
Corrija o texto JSON para uma sintaxe válida: use aspas duplas, remova vírgulas sobrando no final, verifique os escapes. Teste se o texto é válido: SELECT JSON_VALID('{...}'); (retorna 1 se for válido). Use uma biblioteca confiável para serializar JSON na camada de aplicação e valide-o antes de enviá-lo ao servidor.
Mais entradas deste banco
- 1118ER_TOO_BIG_ROWSIZE: Row size too large
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length (coluna BLOB/TEXT usada em uma chave sem comprimento de chave)
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log (comando inseguro gravado no binary log)
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value (a tabela não tem nenhuma partição para o valor)
- 1049Unknown database 'name'
- 1364Field 'name' doesn't have a default value (o campo não tem valor padrão)
- 1206The total number of locks exceeds the lock table size (o número total de locks excede o tamanho da tabela de locks)