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

如何移除JSON末尾多余逗号解决json_decode返回NULL的问题

解决PHP json_decode返回NULL问题(JSON尾部逗号异常场景)

问题原因

json_decode返回NULL的核心原因是你获取到的JSON不符合标准语法规范,最后一个键值对"fast": "H"末尾存在多余的逗号,PHP原生JSON解析遵循严格标准,遇到语法错误就会返回NULL。
你提供的异常JSON内容如下:

{
  "returnCode": "0",
  "returnMessage": "bla bla bla message",
  "fast": "H",
}

你可以调用json_last_error()验证,返回结果为JSON_ERROR_SYNTAX,即JSON语法错误。

解决方案

方案1(优先选择):修正接口输出

对接接口提供方调整JSON生成逻辑,移除最后一个键值对后的多余逗号,保证输出符合标准JSON规范,即可正常解析。

方案2(临时兼容):本地清理异常语法

如果无法调整接口输出,可以通过正则清理JSON结构中的尾部逗号后再解析,示例代码如下:

// 你的cURL返回的原始响应字符串
$response = '你的原始响应内容';
// 清理对象/数组尾部的多余逗号
$cleaned_response = preg_replace('/,\s*([\]}])/m', '$1', $response);
// 解析处理后的JSON
$result = json_decode($cleaned_response, true);
// 验证解析结果
var_dump($result);

注意:临时兼容方案仅适用于简单的尾部逗号异常场景,若JSON内容本身包含,}或,]格式的字符串值会出现误匹配,仅做临时应急使用,不推荐长期依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:18:04