PHP中json_encode输出后追加内容致JSON无效的问题求助
解决JSON输出被额外文本破坏的问题
核心原因
JSON格式要求输出必须是纯合法的JSON字符串,任何额外字符(文本、空格、换行等)都会导致JSON解析失败——你后续的echo内容会直接追加到JSON字符串末尾,形成不完整的非法结构。
具体解决思路
只输出纯JSON:如果是接口返回JSON数据,删除
json_encode之后的所有额外输出,仅保留:echo json_encode(['MyData' => $donnees]);将额外信息整合进JSON:若需要返回调试或附加信息,把内容嵌入JSON结构内部,保证输出是单一合法JSON对象:
echo json_encode([ 'MyData' => $donnees, 'message' => "Why i don't get out ?" ]);临时调试用脚本终止:如果只是临时调试,不想让后续输出破坏JSON,在输出JSON后用
exit或die终止脚本执行:echo json_encode(['MyData' => $donnees]); exit; // 后续代码不再执行 echo "Why i don't get out ?"; // 这行不会被输出排查隐性输出:检查PHP文件是否有开头/结尾的空格、BOM头,或者其他函数(如
var_dump、print_r)的隐性输出,这些都会污染JSON内容,需要全部清除。
内容的提问来源于stack exchange,提问作者Tetsuochat
相关产品推荐
相关产品推荐

