如何从API返回的嵌套JSON数组中提取指定分组数据?
提取嵌套数组中指定分组的子字段数据
我尝试了多次仍无法解决这个问题,需要帮助:
API返回的嵌套数组结构如下:
Array ( [group] => Array ( [name] => Iedereen [desc] => Iedereen [type] => G [instituteNumber] => Array ( ) [children] => Array ( [group] => Array ( [0] => Array ( [name] => Beheerders [desc] => Beheerders [type] => G [code] => Beheerders [instituteNumber] => Array ( ) ) [1] => Array ( [name] => Personeel [desc] => Personeel [type] => G [code] => Personeel [instituteNumber] => Array ( ) [children] => Array ( [group] => Array ( [0] => Array ( [name] => DT [desc] => directieteam [type] => G [code] => DT5 [instituteNumber] => Array ( ) ) ) ) ) ) ) ) )
需求是提取Personeel分组下所有子分组的[name]和[type]字段数据,示例输出:
[name] => DT [type] => G
解决方案
可以通过遍历定位目标分组后提取子字段,以下是PHP实现示例:
function extractPersoneelChildren($apiData) { $result = []; // 遍历顶层子分组,找到Personeel分组 foreach ($apiData['group']['children']['group'] as $group) { if ($group['name'] !== 'Personeel') continue; // 提取该分组下所有子分组的name和type foreach ($group['children']['group'] as $childGroup) { $result[] = [ 'name' => $childGroup['name'], 'type' => $childGroup['type'] ]; } // 如果子分组还有更深嵌套层级,可在此添加递归遍历逻辑 } return $result; } // 调用函数并输出结果 $extracted = extractPersoneelChildren($yourApiResponse); foreach ($extracted as $item) { echo "[name] => {$item['name']}\n"; echo "[type] => {$item['type']}\n"; }
说明
- 先遍历顶层子分组,精准定位到名称为
Personeel的分组 - 直接提取该分组下
children节点内所有子分组的name和type字段 - 若存在多层嵌套的子分组,可在遍历子分组时增加递归调用,实现全层级字段提取
内容的提问来源于stack exchange,提问作者MisterS
相关产品推荐
相关产品推荐

