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

修改食品描述字段为BLOB后出现Unexpected end of JSON input报错如何解决

问题根因

你将食品描述字段改为BLOB后,字段内存储的富文本包含换行、单引号等特殊字符,原有代码中将json_encode的输出套入单引号再用JSON.parse解析的写法,配合stripslashes会破坏JSON结构完整性,导致JSON字符串被截断,所以抛出Unexpected end of JSON input语法错误。之前出现的rn异常是换行符\r\n未被正确转义导致的。

解决方案

1. 核心代码修改

找到这行错误代码:

var categories = JSON.parse('<?php echo stripslashes(json_encode($categories)); ?>');

直接替换为以下写法即可:

var categories = <?php echo json_encode($categories, JSON_UNESCAPED_UNICODE); ?>;

原理:PHP的json_encode输出的本身就是合法的JS对象字面量,不需要再套单引号用JSON.parse解析,也不需要调用stripslashes处理转义,从根源上避免特殊字符破坏语法结构的问题。

2. 字段类型优化(可选但推荐)

存储富文本类内容不需要使用BLOB二进制类型,改为MEDIUMTEXT或LONGTEXT类型更适配文本场景,编码处理、查询排序的兼容性更好,也能避免后续不必要的二进制读写编码问题。

3. 验证修复

修改后刷新页面,检查categories变量输出完整无截断,即可解决JSON解析报错、食品条目不展示、多余rn字符、HTML标签直接输出的所有问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:45:03