在Laravel中如何访问JSON返回结果中的数字类型键对应数据
解决方案
你遇到的报错是PHP语法限制导致的:纯数字、或者数字开头的属性名不能直接通过->属性名的方式访问,需要用特殊写法实现。
方法1:花括号包裹字符串键名(最便捷)
直接在箭头后用花括号包裹字符串格式的数字键即可,访问示例:
// 访问2019对应的整个对象 dd($response->results[0]->response->results[0]->fields->census->{'2019'}); // 直接提取你需要的tract_code(也就是Census_Tract对应值) $censusTract = $response->results[0]->response->results[0]->fields->census->{'2019'}->tract_code;
方法2:转为数组后访问(适合动态年份场景)
如果年份是动态变量、或者你更习惯数组写法,可以先将对象强制转为数组再用下标访问:
$censusData = (array) $response->results[0]->response->results[0]->fields->census; // 数字/字符串下标都支持 $yearData = $censusData[2019]; // 提取Census_Tract $censusTract = $yearData['tract_code'];
如果年份不固定的话,还可以先取所有键再操作:
$allYears = array_keys($censusData); $latestYear = end($allYears); $censusTract = $censusData[$latestYear]['tract_code'];
内容的提问来源于stack exchange,提问作者SiriusPhil
相关产品推荐
相关产品推荐

