3140: ER_INVALID_JSON_TEXT: Invalid JSON text
MySQLNe demek?
Bir JSON sütununa ya da JSON fonksiyonuna geçerli olmayan (sözdizimi bozuk) JSON metni verildi. MySQL, değeri JSON olarak ayrıştıramadığı için işlemi reddeder.
Neden olur?
Kapanmamış tırnak/parantez, sondaki fazladan virgül, tek tırnak kullanımı, kaçış karakteri hataları ya da düz metnin JSON sütununa gönderilmesi. JSON_SET, JSON_INSERT gibi fonksiyonlara veya JSON tipli sütuna hatalı metin girildiğinde ortaya çıkar.
Nasıl çözülür?
JSON metnini geçerli sözdizimine göre düzeltin: çift tırnak kullanın, sondaki virgülleri kaldırın, kaçışları doğrulayın. Metnin geçerli olup olmadığını test edin: SELECT JSON_VALID('{...}'); (1 döndürürse geçerlidir). Uygulama katmanında JSON'u serileştirirken güvenilir bir kütüphane kullanın ve sunucuya göndermeden önce doğrulayın.
Aynı motorda diğer kayıtlar
- 1118ER_TOO_BIG_ROWSIZE: Row size too large
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value
- 1049Unknown database 'name'
- 1364Field 'name' doesn't have a default value
- 1206The total number of locks exceeds the lock table size