3140: ER_INVALID_JSON_TEXT: Invalid JSON text
MySQL¿Qué significa?
Se pasó un texto JSON no válido (sintácticamente roto) a una columna JSON o a una función JSON. MySQL rechaza la operación porque no puede analizar el valor como JSON.
¿Por qué ocurre?
Una comilla/corchete sin cerrar, una coma final, comillas simples, errores en caracteres de escape o texto plano enviado a una columna JSON. Aparece cuando se pasa texto mal formado a funciones como JSON_SET, JSON_INSERT o a una columna de tipo JSON.
Cómo solucionarlo
Corrija el texto JSON para que tenga una sintaxis válida: use comillas dobles, elimine las comas finales, verifique los escapes. Compruebe si el texto es válido: SELECT JSON_VALID('{...}'); (devuelve 1 si es válido). Use una biblioteca fiable para serializar JSON en la capa de aplicación y valídelo antes de enviarlo al servidor.
Más entradas de este motor
- 1118ER_TOO_BIG_ROWSIZE: Row size too large
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length (columna BLOB/TEXT usada en una clave sin longitud de clave)
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log (sentencia no segura escrita en el binary log)
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value (la tabla no tiene ninguna partición para el valor)
- 1049Unknown database 'name'
- 1364Field 'name' doesn't have a default value (el campo no tiene valor predeterminado)
- 1206The total number of locks exceeds the lock table size (el número total de bloqueos supera el tamaño de la tabla de bloqueos)