You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中解析JSON子文档数组并循环提取数据的方法

提取JSON解码后数组中list子文档的数据

嘿,既然你已经用json_decode($response, true)把JSON字符串转换成关联数组了,那提取list里的内容就非常直接啦!

首先,你需要先定位到数组里的list部分——它在解码后数组的data键下面。接下来用foreach循环遍历这个list数组,就能逐个取出里面的每一项数据了。

基础实现代码

// 假设$response是你的原始JSON字符串,已经解码到$decodedData里
$decodedData = json_decode($response, true);

// 取出list数组
$listItems = $decodedData['data']['list'];

// 遍历每个列表项
foreach ($listItems as $item) {
    // 提取需要的字段,这里用$dataContent避免和外层的$data键混淆
    $id = $item['id'];
    $dataContent = $item['data'];
    $xCoordinate = $item['x'];
    $yCoordinate = $item['y'];
    
    // 这里可以按照你的需求处理这些数据,比如打印、存入数据库等
    echo "列表项ID: {$id},内容: {$dataContent},坐标X: {$xCoordinate},坐标Y: {$yCoordinate}<br>";
}

更健壮的版本(处理字段缺失情况)

如果担心JSON里的某些字段可能不存在(比如偶尔返回的JSON少了某个键),可以用isset()做存在性检查,避免报错:

foreach ($listItems as $item) {
    $id = isset($item['id']) ? $item['id'] : '无ID';
    $dataContent = isset($item['data']) ? $item['data'] : '无内容';
    $xCoordinate = isset($item['x']) ? $item['x'] : '无X坐标';
    $yCoordinate = isset($item['y']) ? $item['y'] : '无Y坐标';
    
    // 处理数据
    echo "列表项ID: {$id},内容: {$dataContent},坐标X: {$xCoordinate},坐标Y: {$yCoordinate}<br>";
}

这样不管JSON结构有没有小变动,你的代码都能稳定运行啦!

内容的提问来源于stack exchange,提问作者M A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:33:42