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

PHP中json_decode返回null且报Syntax error的解决求助

无法解析JSON:Syntax error问题排查与解决

问题说明

已尝试所有相关解决方案仍无法解决JSON解析问题。获取的响应内容带有额外前缀,调用json_last_error_msg()返回Syntax error。

原始获取的响应内容

string(22672) "{"status":true,"result":{"0":{"keyword":"BMW","avg_cpc":0.405132,"min_clicks":42847.5859375,"avg_budget":17358.92818603125},"1":{"keyword":"BMW livrable","avg_cpc":0,"min_clicks":0,"avg_budget":0},"2":{"keyword":"BMW disponible","avg_cpc":0.595299,"min_clicks":27.446643829345703,"avg_budget":16.338959624965668},"3":{"keyword":"bonne affaires BMW","avg_cpc":0,"min_clicks":0,"avg_budget":0},"4":{"keyword":"BMW en stock","avg_cpc":0.370574,"min_clicks":12.511731147766113,"avg_budget":4.63652225835228},"max_cpc":1.0131090475410072,"min_clicks":42887.54431247711}} "

直接响应的有效JSON内容

{"status":true,"result":{"0":{"keyword":"BMW","avg_cpc":0.407065,"min_clicks":42202.34765625,"avg_budget":17179.098648691408},"1":{"keyword":"BMW livrable","avg_cpc":0,"min_clicks":0,"avg_budget":0},"2":{"keyword":"BMW disponible","avg_cpc":0.598459,"min_clicks":27.12619400024414,"avg_budget":16.233914935192107},"3":{"keyword":"bonne affaires BMW","avg_cpc":0,"min_clicks":0,"avg_budget":0},"4":{"keyword":"BMW en stock","avg_cpc":0.367595,"min_clicks":11.617576599121094,"avg_budget":4.270563069953918},"max_cpc":1.0179426327372374,"min_clicks":42241.091426849365}}

解决方案

1. 核心问题定位

原始响应包含PHP调试输出的前缀string(22672) "和末尾的 "(引号+空格),这些非JSON规范内容是导致解析报错的直接原因。

2. 代码处理方案

通过字符串提取清理无效内容,保留纯JSON部分:

$rawResponse = 'string(22672) "{"status":true,"result":{"0":{"keyword":"BMW","avg_cpc":0.405132,"min_clicks":42847.5859375,"avg_budget":17358.92818603125},"1":{"keyword":"BMW livrable","avg_cpc":0,"min_clicks":0,"avg_budget":0},"2":{"keyword":"BMW disponible","avg_cpc":0.595299,"min_clicks":27.446643829345703,"avg_budget":16.338959624965668},"3":{"keyword":"bonne affaires BMW","avg_cpc":0,"min_clicks":0,"avg_budget":0},"4":{"keyword":"BMW en stock","avg_cpc":0.370574,"min_clicks":12.511731147766113,"avg_budget":4.63652225835228},"max_cpc":1.0131090475410072,"min_clicks":42887.54431247711}} "';

// 提取引号包裹的JSON内容
$start = strpos($rawResponse, '"') + 1;
$end = strrpos($rawResponse, '"');
$validJson = substr($rawResponse, $start, $end - $start);
// 去除末尾多余空格
$validJson = trim($validJson);

// 解析验证
$data = json_decode($validJson, true);
if (json_last_error() === JSON_ERROR_NONE) {
    // 解析成功,执行业务逻辑处理
    var_dump($data);
} else {
    echo json_last_error_msg();
}

3. 额外验证

处理后的JSON可通过json_decode()或在线JSON校验工具确认语法正确性,确保无隐藏字符或编码异常问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:15:26