You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL/MariaDB长JSON无法通过JSON_VALID校验的问题排查

问题:含大量嵌入撇号的合法JSON无法通过MySQL/MariaDB的JSON_VALID校验

表结构

我在MySQL/MariaDB中创建了带有JSON_VALID约束的表,SQL语句如下:

CREATE TABLE `oa24_json` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `appnum` varchar(8) NOT NULL,
  `oa_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`oa_json`)),
  `last_update` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci

问题现象

  • 待插入的JSON已验证合法,但插入时触发MySQL/MariaDB错误码4025(推测未通过JSON_VALID校验)
  • 在简单案例中,转义JSON字符串中的嵌入撇号可通过JSON_VALID校验,示例SQL:
SELECT JSON_VALID('{"response":{"numFound":7,"start":0,"docs":[
{
  "patentApplicationNumber":["16286064"],
  "applicationDeemedWithdrawnDate":"0000-12-30T05:00:00Z",
  "applicationStatusNumber":120,
  "inventionTitle":["INITIATING A FUNDS TRANSFER FROM A PLAYER\'S MOBILE DEVICE TO A CASINO WALLET THAT REQUIRES HUMAN VALIDATION OF THE PLAYER\'S IDENTITY"]
}]}}') AS 'Valid ?';
  • 但对于包含107个嵌入撇号的长数据,仅转义撇号的方法无效(其余转义字符如\n、\"由美国专利商标局(USPTO)自动生成)

求助

请问还需做哪些操作才能让这份合法JSON通过JSON_VALID校验?

内容的提问来源于stack exchange,提问作者Scavokovich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:12:43