无法从嵌套JSON数组提取Maple数据,请求技术排查协助
问题排查:嵌套JSON数组数据提取失败的原因及修复方案
嘿,我一眼就发现问题所在啦!你访问嵌套数组的路径漏掉了关键的一层——Data!
问题根源分析
你的JSON结构里,toppings数组并不是直接挂载在根对象下的,它是嵌套在Data这个子对象内部的。你当前的代码直接写$yummy['toppings'],程序根本找不到这个键,自然无法输出Maple。
修正后的完整代码
$json = ' { "Success":true,"Message":null,"Data": { "type": "donut", "name": "Cake", "toppings": [ { "id": "5002", "type": "Glazed" }, { "id": "5006", "type": "Chocolate with Sprinkles" }, { "id": "5004", "type": "Maple" } ] } }'; $yummy = json_decode($json, true); // 补上Data层级的访问路径 echo $yummy['Data']['toppings'][2]['type']; // 现在可以正常输出Maple啦
实用小技巧
以后遇到嵌套JSON的访问困惑时,不确定层级结构的话,可以用var_dump($yummy)或者print_r($yummy)打印出整个数组的完整结构,这样就能清晰看到每一层的键名,避免路径错误啦!
内容的提问来源于stack exchange,提问作者Praburam
相关产品推荐
相关产品推荐

