使用PHP无法访问JSON数据中id和sent字段问题求助
问题修复方案
原代码存在两处核心错误导致无法正常取值:
- 未接收
json_decode()的返回结果:json_decode()执行后会将JSON字符串解析为PHP对象/数组,必须将返回值赋值给变量才能后续操作,原代码中操作的$json仍然是原始字符串类型,无法使用对象语法读取字段 - 字段层级匹配错误:目标
id、sent字段都嵌套在根节点的response属性下,无法直接从根结构读取
修复后的可运行代码(对象模式)
$json = '{ "response": { "sent": true, "message": "Sent to 57304", "id": "gBEGVzBChXFYAgmcOrfFpGem8qw" } }'; // 接收解析后的对象 $parseResult = json_decode($json); // 从response节点下读取目标字段 $id = $parseResult->response->id; $sent = $parseResult->response->sent; echo "</br> id:".$id."</br>"; echo "</br> sent:".$sent."</br>";
可选:数组模式解析
如果习惯用数组操作,可以给json_decode()传入第二个参数true,解析结果会转为关联数组:
$parseResult = json_decode($json, true); $id = $parseResult['response']['id']; $sent = $parseResult['response']['sent'];
内容的提问来源于stack exchange,提问作者Andres Carvajal
相关产品推荐
相关产品推荐

