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

PHP解析JSON后输出messages的id时报Attempt to read property错误

错误原因

你代码的报错本质是messages字段在JSON结构中是索引数组类型,不是对象,不能直接用->语法读取内部的id属性。
你提供的JSON里messages对应值为[{"id":"123","rct":999}],外层的方括号代表这是一个数组,数组的第一个元素才是包含id属性的对象。

修复方案

方案1:保留对象解析方式,指定数组索引

修改输出语句,先取messages数组的第0位元素再读取id:

<?php
$result ='{"num":1,"message":{"cont":"test"},"messages":[{"id":"123","rct":999}],"status":"success"}';
$obj = json_decode($result);
echo $obj->messages[0]->id;
?>

运行后即可正常输出123。

方案2:转为关联数组读取

给json_decode传入第二个参数true,将JSON整体解析为关联数组,用数组语法访问:

<?php
$result ='{"num":1,"message":{"cont":"test"},"messages":[{"id":"123","rct":999}],"status":"success"}';
$arr = json_decode($result, true);
echo $arr['messages'][0]['id'];
?>

如果messages数组中存在多个元素,遍历数组即可读取所有id值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:57:00