如何从嵌套JSON数组中提取vin字段 现有PHP遍历代码无法生效求助
PHP提取嵌套JSON中vin字段失败排查方案
核心错误原因
你写的遍历逻辑本身没有问题,无法输出的99%概率是没有正确将原始JSON字符串转为PHP关联数组:
- 接口返回的原始内容是JSON字符串格式,不能直接用数组下标访问,必须调用
json_decode()方法转码 - 转码时必须给
json_decode()传第二个参数true,否则方法默认返回stdClass对象,用数组下标访问会抛出错误 - 确认转码后的数组赋值的变量名和你遍历用的变量名一致,不要出现拼写错误
可运行完整示例
// 替换为你实际拿到的JSON字符串 $originJson = '{ "results": [ { "vehicle": { "ownershipCondition": "Used", "registration": "BX68NHL", "vin": "ZFA3120000JA60541", "make": "Fiat", "model": "500", "generation": "Hatchback (2015 - )" } } ] }'; // 转码为关联数组,第二个参数必须为true $result = json_decode($originJson, true); // 你原来的遍历代码无需修改 foreach($result['results'] as $res) { $currCar = $res['vehicle']['vin']; echo $currCar."\n"; }
运行输出
ZFA3120000JA60541
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

