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

PHP中无法解析含数字键的JSON:语法错误问题求助

解决PHP解析带数字键JSON的语法错误问题

这个问题我太熟了!你遇到的是PHP访问JSON数字键属性时的语法限制问题,咱们一步步来解决:

问题根源

你看到的Parse error: syntax error, unexpected '24'错误,本质是PHP的语法规则限制:如果JSON解析后得到的对象(默认是stdClass类型)的属性名是纯数字(比如24),直接用->24这种写法是不合法的——PHP要求对象的属性名必须是合法标识符(不能以数字开头),所以解析器看到24直接就懵了,不知道该怎么处理。

两种可行解决办法

方法1:用大括号包裹数字键(针对对象类型结果)

如果你坚持要把JSON解析成对象,访问数字键属性时,需要把键名用引号包裹后放在大括号里:

// ❌ 错误写法(触发你遇到的报错)
$value = $data->24;

// ✅ 正确写法
$value = $data->{'24'};

方法2:将JSON解码为关联数组(更推荐)

直接给json_decode添加第二个参数true,让JSON直接转换为关联数组,这样就能像普通数组一样用键名访问,处理数字键更直观:

// 解码为关联数组
$data = json_decode($your_json_string, true);

// 直接用数组键访问数字键对应的值
$value = $data['24'];

验证示例

假设你的JSON内容是:

{"24": "今日访问量", "username": "blockGecko"}

用方法2的代码测试:

$json = '{"24": "今日访问量", "username": "blockGecko"}';
$data = json_decode($json, true);
echo $data['24']; // 输出:今日访问量

完全不会出现语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:06:48